Aje*_*rma 2 java swing awt jframe
我正在使用JFrame. 根据要求,我必须将JFrame区域划分为许多子区域。
我在在一个 JFrame中使用两个 JPanel 中发现我可以通过JPanel在我的内部使用 a来实现JFrame,但我不必使用JPanel.
你知道如何在JFrame不使用的情况下将区域划分为许多子区域JPanel吗?
当您向框架 ( JFrame) 添加内容时,您实际上是添加到他的内容窗格中,这实际上是一个容器(JPanel也是一个通用的轻量级容器)。
“划分一个JFrame”的首选方法是实际“划分”一个JPanel,然后将该面板设置为框架的内容窗格。像这样的东西:
JPanel panel = new JPanel();
// ...
// layout panel, add components, etc...
// ...
frame.setContentPane(panel);
Run Code Online (Sandbox Code Playgroud)
但是,如果您真的想在JFrame不创建新容器(JPanel例如a)的情况下对 a进行划分/拆分/布局,则可以这样做:
frame.getContentPane().setLayout(new BorderLayout());
frame.getContentPane().add(new JLabel("Left"), BorderLayout.WEST);
frame.getContentPane().add(new JLabel("Center"), BorderLayout.CENTER);
Run Code Online (Sandbox Code Playgroud)
这是一个完全有效的测试类:
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);
}
}
Run Code Online (Sandbox Code Playgroud)