我正在尝试制作一个2x2网格布局,左上角有一个JLabel,另外三个空格上有三个按钮。当我这样做的时候,我得到一个大按钮(填满整个JDialog)的意外结果,说明了#34;你想推我和#34;。我不知道为什么会出现这个结果,请帮助,谢谢!
public void sinceyoupressedthecoolbutton() {
JDialog replacementwindow = new JDialog(); //Like a window
JButton best = new JButton("best");
JButton first = new JButton("FIRST");
JButton second = new JButton("Second");
replacementwindow.setLayout(new GridLayout(2,3,0,0)); //Row, column, distance horizontally, distance vertical
JPanel panel = new JPanel();
replacementwindow.add(panel); //adding the JPanel itself
replacementwindow.add(first);
replacementwindow.add(second);
replacementwindow.add(best);
replacementwindow.setSize(500, 500);
replacementwindow.setTitle("NEW WINDOW!");
replacementwindow.setVisible(true);
}
答案 0 :(得分:2)
不要向按钮添加组件。您可以向面板添加组件。
所以基本代码应该是:
JDialog dialog = new JDialog(...);
JPanel panel = new JPanel( new GridLayout(...) );
panel.add(label);
panel.add(button1);
...
dialog.add(panel);
此外,变量名称不应以大写字母开头! “是”不符合Java标准。其他变量呢。保持一致!
答案 1 :(得分:2)
这是因为您设置了JButton
的布局,而不是JDialog
更改
label.setLayout(new GridLayout(2,2,0,0));
到
YES.setLayout(new GridLayout(2,2,0,0));
另外,名为label
的变量是JButton
,您可能想要更改它。