在 java 中设计特定的 UI

Designing specific UI in java

我想使用 swings 和 awt 在 java 中创建一个 UI 这样:

**** 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 个按钮,布局设置为 BorderLayout 第二个面板包含网格.. 然后将两个面板添加到具有布局边框布局的框架

但是没有添加按钮并且网格看起来很小...当我单击该网格按钮时它会展开..

有人可以帮我创建这个 UI 吗?我是 java 的新手。请帮忙。

but buttons are not added

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

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

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

and the grid appears small

frame.setSize(1000,700);

不要硬编码大小。让布局管理器通过调用 pack() 方法来完成它的工作:

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

不要伤害