在CENTER中添加gridLayout(2,2)

时间:2016-04-05 12:26:36

标签: java layout grid

我想在我的布局中心创建一个带有4个按钮的gridLayout,以及一个到PAGE_END,PAGE_START,LINE_END,LINE_START的按钮。我的代码确实显示了我告诉你的最后一个按钮,但没有显示网格按钮。

public static void main(String[] args) {
    JFrame frame = new JFrame();
    frame.setTitle("Hello World!");
    frame.setSize(400,200);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setVisible(true);

    JPanel p = new JPanel(new BorderLayout());

    GridLayout grid = new GridLayout(2,2);
    p.setLayout(new GridBagLayout());
    GridBagConstraints c = new GridBagConstraints();

    JButton bg1 = new JButton("Button 1");
    p.add(bg1, c);
    JButton bg2 = new JButton("Button 2");
    p.add(bg2, c);
    JButton bg3 = new JButton("Button 3");
    p.add(bg3, c);
    JButton bg4 = new JButton("Button 4");
    p.add(bg4, c);

    frame.setLayout(new BorderLayout());        

    JButton b1 = new JButton("TOP");
    JButton b2 = new JButton("LEFT");
    JButton b3 = new JButton("RIGHT");
    JButton b4 = new JButton("BOTTOM");       

    frame.add(b1,BorderLayout.PAGE_START);
    frame.add(b2,BorderLayout.LINE_START);
    frame.add(b3,BorderLayout.LINE_END);
    frame.add(b4,BorderLayout.PAGE_END);
  }    
}

1 个答案:

答案 0 :(得分:0)

您已创建了面板p,但尚未将其添加到相框中。

在您的代码中添加以下行:

frame.add(p,BorderLayout.CENTER);

此外,如果您想要网格中的按钮,则必须使用此行:

p.setLayout(grid);

而不是p.setLayout(new GridBagLayout());