网格布局不起作用?
Grid layout not working?
我正在尝试制作一个 2x2 网格布局,在左上角有一个 JLabel,在其他三个空间上有三个按钮。当我这样做时,我得到了一个大按钮(填满整个 JDialog)的意外结果,上面写着 "Do you want to push me"。不知道为什么会出现这个结果,求助,谢谢!
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);
}
不要向按钮添加组件。您将组件添加到面板。
所以基本代码应该是:
JDialog dialog = new JDialog(...);
JPanel panel = new JPanel( new GridLayout(...) );
panel.add(label);
panel.add(button1);
...
dialog.add(panel);
另外,变量名不能以大写字符开头! "Yes" 不遵循 Java 标准。其他变量做。保持一致!
这是因为您设置了 JButton
的布局,而不是 JDialog
的布局
改变
label.setLayout(new GridLayout(2,2,0,0));
到
YES.setLayout(new GridLayout(2,2,0,0));
另外,你的变量 label
是一个 JButton
,你可能想改变它。
我正在尝试制作一个 2x2 网格布局,在左上角有一个 JLabel,在其他三个空间上有三个按钮。当我这样做时,我得到了一个大按钮(填满整个 JDialog)的意外结果,上面写着 "Do you want to push me"。不知道为什么会出现这个结果,求助,谢谢!
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);
}
不要向按钮添加组件。您将组件添加到面板。
所以基本代码应该是:
JDialog dialog = new JDialog(...);
JPanel panel = new JPanel( new GridLayout(...) );
panel.add(label);
panel.add(button1);
...
dialog.add(panel);
另外,变量名不能以大写字符开头! "Yes" 不遵循 Java 标准。其他变量做。保持一致!
这是因为您设置了 JButton
的布局,而不是 JDialog
改变
label.setLayout(new GridLayout(2,2,0,0));
到
YES.setLayout(new GridLayout(2,2,0,0));
另外,你的变量 label
是一个 JButton
,你可能想改变它。