And*_*son 3 java swing jframe layout-manager border-layout
下面是将两个面板添加到框架的示例.仅出现一个面板(第2个红色面板).

为什么第一个面板消失了?
import java.awt.*;
import javax.swing.*;
import javax.swing.border.EmptyBorder;
public class DisappearingPanelInFrame {
DisappearingPanelInFrame() {
JFrame f = new JFrame(this.getClass().getSimpleName());
f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
f.add(new ColoredPanel(Color.GREEN));
f.add(new ColoredPanel(Color.RED));
f.pack();
f.setVisible(true);
}
public static void main(String[] args) {
Runnable r = new Runnable() {
@Override
public void run() {
new DisappearingPanelInFrame();
}
};
SwingUtilities.invokeLater(r);
}
}
class ColoredPanel extends JPanel {
ColoredPanel(Color color) {
setBackground(color);
setBorder(new EmptyBorder(20, 150, 20, 150));
}
}
Run Code Online (Sandbox Code Playgroud)
JFrame(或者更具体地说,在这种情况下,框架的内容窗格)是a BorderLayout.BordeLayout没有约束的组件时,Swing API会将组件放入CENTER.BorderLayout可以在5个布局约束中的每一个中包含恰好一个组件.CENTER)约束时BorderLayout,Java的这个实现将显示添加的最后一个组件.至于什么是更好的方法取决于用户界面的特定需求.
| 归档时间: |
|
| 查看次数: |
1841 次 |
| 最近记录: |