我想在calculator
中制作一个java
。我是Layout Managers
的新手。我使用JFrame
创建了一个GridBagLayout
对象。我创建了2个JPanel
,一个用于数字,另一个用于操作。 JPanel
使用GridLayout
。
这是JFrame
中的排列方式。
window=new JFrame("Calculator");
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setLayout(new GridBagLayout());
//Creating window
GridBagConstraints gbc=new GridBagConstraints();
btns=new JPanel(); //JPanel for numbers
operations=new JPanel(); //JPanel for operations
numdisp=new JTextField(15); //JTextFIeld which displays the number
gbc.gridx=1;
gbc.gridy=1;
window.add(numdisp,gbc);
addbtn(); //method which defines all the variables
gbc.gridx=1;
gbc.gridy=2;
window.add(btns,gbc);
gbc.gridx=2;
gbc.gridy=2;
window.add(operations,gbc);
btns.setLayout(new GridLayout(4,3,0,0)); //Layout for both JPanel's
operations.setLayout(new GridLayout(7,1,1,1));
window.pack();
window.setVisible(true);
但这就是结果的样子......
我不明白为什么我的number
小组与number display
之间存在较大差距。为什么会出现问题?怎么可以解决?
答案 0 :(得分:-1)
整个窗口也是GridBagLayout。所以你有2x2网格,第一列固定大小为15
numdisp=new JTextField(15)
因此,布局管理器还将数字网格也修复为numdisp的宽度。 如果删除此固定大小,则应调整为数字网格的大小。