当前位置: 首页 > 知识库问答 >
问题:

用java设计特定的UI

尉迟阳煦
2023-03-14
**** BUTTON1 , BUTTON2,BUTTON3, BUTTON4, BUTTON5 **** (in a row )
***** GRID OF SIZE 20 X 20 ****** (next)

frame.setSize(1000,700);
    frame.setLayout(new BorderLayout());

    smile = new ImageIcon("C:/Users/RISHABH/Desktop/PP/MineSweeper/sm.png");
    sad = new ImageIcon("C:/Users/RISHABH/Desktop/PP/MineSweeper/smb.png");
    mine = new ImageIcon("C:/Users/RISHABH/Desktop/PP/MineSweeper/mine.png");

    panel1.setLayout(new BorderLayout());

    panel2.setLayout(new GridLayout());
    smiley.setIcon(smile);
    Dimension d = new Dimension(30,20);
    smiley.setPreferredSize(d);//.setSize(30, 20);

    panel1.add(timer);
    panel1.add(score);
    panel1.add(smiley);
    panel1.validate();
    //frame.add(smiley,BorderLayout.NORTH);
    //smiley.addActionListener(this);
    //Button grid
    buttons = new JButton[nrows][ncols];
    grid.setLayout(new GridLayout(nrows,ncols));
    for(int i=0;i<nrows;i++){
        for(int j=0;j<ncols;j++){
            buttons[i][j] = new JButton();
            buttons[i][j].addActionListener(this);
            grid.add(buttons[i][j]);

        }
    }
    panel2.add(grid,BorderLayout.CENTER);
    //frame.add(grid,BorderLayout.CENTER);
    frame.add(panel1);
    frame.add(panel2);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setVisible(true);

我创建了两个面板..第一个面板添加了所有3个按钮,布局设置为边框布局,第二个面板包含网格。然后将两个面板添加到具有布局边框布局的框架中

但是没有添加按钮,网格看起来很小...当我点击那个网格按钮时,它就会膨胀...

有谁能帮助我创建这个UI吗?我是刚到爪哇的。请帮帮忙。

共有1个答案

蒋何平
2023-03-14

但不添加按钮

frame.setLayout(new BorderLayout());
...
frame.add(panel1);
frame.add(panel2);

您正在使用BorderLayout。不能将组件添加到中心,只显示最后添加的组件。尝试:

frame.add(panel1, BorderLayout.NORTH);
frame.add(panel2.CENTER);

并且网格看起来很小

frame.setSize(1000,700);

不要硬编码尺寸。让布局管理器通过调用pack()方法来完成其工作:

frame.pack();
frame.setVisible(true);

别生气

 类似资料:
  • 我正试着从一个特定的日期开始做一个计数计时器。我使用了这个(http://tutorialzine.com/2012/09/count-up-jquery/)教程来做,但我不知道在哪里放进去: $('#countdown').countup({start:new Date(2012,10,27,15,58,21)//年,月,日,小时,分钟,秒}); 就像描述中说的。 代码的开头看起来是这样的:

  • 我有产品列表,希望找到特定成本范围内的产品计数,如,如果productList有10个产品,成本在1-10之间,50在11-100之间,100在101-1000之间,那么它应该返回如下图,

  • 如前所述,Windows操作系统具有MS-DOS操作系统无可比拟的优点,因而受到了广大软件开发人员的亲睐。但是,熟悉DOS环境下软件开发的程序员很快就会发现,Windows编程与DOS环境下编程相比有很大的不同。Windows要求以一种全新的思维方式进行程序设计,主要表现为以下几点: 1.3.1事件驱动的程序设计 传统的MS-DOS程序主要采用顺序的、关联的、过程驱动的程序设计方法。一个程序是一系

  • 或者我应该为每个汽车品牌提供一个单独的endpoint,它有一个具有该汽车品牌所需的确切属性的主体。 因此,在第一种方法中,我有一个endpoint,它有一个string参数,我希望它是一个具有所有必要值的JSON 而在第二种方法中,在第二种场景中,每种汽车品牌都有一个endpoint,每个endpoint都有一个类型dto对象,表示它需要的所有值。

  • 在我的机器上,我安装了两个Java版本:(我手动安装的1.6和1.7)。我需要他们两个为不同的项目。但对于Maven,我需要1.7,但我的Maven使用的是1.6 Java版本。

  • 我一直在使用Dynamodb作为数据库构建一个无服务器应用程序,并且一直遵循单表设计模式(例如https://www.alexdebrie.com/posts/dynamodb-single-table/)。我开始遇到的问题是使用Dynamodb流——我希望能够使用Dynamodb流来保持Elasticsearch实例的最新状态。 在单个dynamodb表容纳大约10种不同类型的项目(将继续扩展)