我正在使用JFrame
开发一个小型Java Swing应用程序。根据要求,我必须将JFrame
区域分成许多子区域。
我在Using two JPanels in one JFrame中发现我可以在JPanel
内使用JFrame
来执行此操作,但我不必使用JPanel
。
您是否知道如何在不使用JFrame
的情况下将JPanel
区域划分为多个子区域?
答案 0 :(得分:4)
当您向框架(JFrame
)添加内容时,实际上是添加到他的内容窗格,实际上是一个容器(JPanel
也是一个通用的轻量级容器)。
“划分JFrame
”的首选方法是实际“划分”JPanel
,然后将该面板设置为框架的内容窗格。像这样:
JPanel panel = new JPanel();
// ...
// layout panel, add components, etc...
// ...
frame.setContentPane(panel);
但是如果你真的想在不创建新容器(例如JFrame
)的情况下划分/拆分/布局JPanel
,这就是:
frame.getContentPane().setLayout(new BorderLayout());
frame.getContentPane().add(new JLabel("Left"), BorderLayout.WEST);
frame.getContentPane().add(new JLabel("Center"), BorderLayout.CENTER);
这是一个完全正常运行的测试类:
import javax.swing.JButton;
import javax.swing.JFrame;
public class Test {
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.getContentPane().setLayout(new BorderLayout());
frame.getContentPane().add(new JButton("Left"), BorderLayout.WEST);
frame.getContentPane().add(new JButton("Center"), BorderLayout.CENTER);
frame.setSize(400, 300);
frame.setVisible(true);
}
}