我有以下部分代码:
buttonPanel = new JPanel();
back = new JButton("Back");
close = new JButton("Close");
addCruise = new JButton("Add new Cruise");
removeCruise = new JButton("Remove Cruise");
buttonPanel.add(close);
buttonPanel.add(back);
buttonPanel.add(addCruise);
buttonPanel.add(removeCruise);
contentPane.add(buttonPanel);
Frame1.add(buttonPanel, BorderLayout.SOUTH);
运行上面的代码后,所有按钮都显示在框架的南边,除了"关闭"按钮。我还希望按钮跨越南部的整个宽度(每个按钮之间没有空格)但是,我不确定如何实现流程布局,并且还使用边框布局以确保按钮显示在底部。
有解决方法吗?
答案 0 :(得分:1)
您在jFrame中有布局。 也将新布局添加到jPanel。
答案 1 :(得分:1)
运行上面的代码后,除“关闭”按钮外,所有按钮都显示在框架的南边。
很难说没有合适的MCVE,为什么会出现“关闭”按钮。此外,请注意不要使用SOUTH
常量,我们应根据标准/国际化/语言导向交易使用PAGE_END
。来自How to Use BorderLayout教程:
在JDK 1.4版之前,各个领域的首选名称是 不同的,从指南针的点(例如, 最高区域的
BorderLayout.NORTH
到word的版本 我们在示例中使用的常量。我们的例子使用的常量是 首选,因为它们是标准的,并使程序可以适应 具有不同方向的语言。
我还希望按钮跨越南部的整个宽度(每个按钮之间没有空格)
对于GridLayout(链接到教程)而言,这听起来像是一行而不是FowLayout。
我不确定如何实现流程布局,还使用边框布局以确保按钮显示在底部。
您的代码似乎足够接近,但这看起来很可疑:
contentPane.add(buttonPanel);
Frame1.add(buttonPanel, BorderLayout.SOUTH);
不要将组件添加到不同的容器中。如果contentPane
是框架的内容窗格,那么第一行就足够了。如果不是那么第一行就没用了。