我想在我的布局中心创建一个带有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);
}
}
答案 0 :(得分:0)
您已创建了面板p
,但尚未将其添加到相框中。
在您的代码中添加以下行:
frame.add(p,BorderLayout.CENTER);
此外,如果您想要网格中的按钮,则必须使用此行:
p.setLayout(grid);
而不是p.setLayout(new GridBagLayout());