这会将两个JPanel放在JFrame中还是需要制作某种容器?
我只是想让JTextField只占据按钮上方的一列而不是放在包含所有按钮的列中。
window = new JFrame("Window");
displayBox = new JTextField(20);
display = new JPanel(new GridLayout(0, 1));
buttons = new JPanel(new GridLayout(0, 3));
b0 = new JButton("0");
b1 = new JButton("1");
//...
window.getContentPane().add(display);
display.add(displayBox);
window.getContentPane().add(buttons);
buttons.add(b0);
buttons.add(b1);
//...
window.pack();
window.setSize(300, 400);
window.setVisible(true);
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
答案 0 :(得分:0)
如果您将代码更改为
window = new JFrame("Window");
window.setLayout(new BoxLayout(window.getContentPane(), BoxLayout.PAGE_AXIS));
window.add(Box.createVerticalGlue());
window.add(Box.createHorizontalGlue());
displayBox = new JTextField(20);
display = new JPanel();
buttons = new JPanel();
buttons.setLayout(new GridLayout(0, 3));
b0 = new JButton("0");
b1 = new JButton("1");
//...
window.getContentPane().add(display);
display.add(displayBox);
window.getContentPane().add(buttons);
buttons.add(b0);
buttons.add(b1);
//...
window.pack();
window.setSize(300, 400);
window.setVisible(true);
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
应该将JPanels添加到另一个的JFrame 1中。