gpt4 book ai didi

java - 为什么添加到框架的第一个面板会消失?

转载 作者:行者123 更新时间:2023-12-01 21:57:29 26 4
gpt4 key购买 nike

下面是向框架添加两个面板的示例。仅出现一个面板(第二个红色面板)。

Disappearing Panel In Frame

为什么第一个面板消失了?

import java.awt.Color;
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(getColoredPanel(Color.GREEN));
f.add(getColoredPanel(Color.RED));

f.pack();
f.setVisible(true);
}

private JPanel getColoredPanel(Color color) {
JPanel p = new JPanel();
p.setBackground(color);
p.setBorder(new EmptyBorder(20, 150, 20, 150));
return p;
}

public static void main(String[] args) {
Runnable r = DisappearingPanelInFrame::new;
SwingUtilities.invokeLater(r);
}
}

最佳答案

  • JFrame 的默认布局(或更具体地说,在本例中,框架的内容 Pane )是 BorderLayout .
  • 将组件添加到 BordeLayout 时如果没有任何限制,Swing API 会将组件放在 CENTER 中.
  • 一个BorderLayout 5 个布局约束中的每一个都可以恰好包含一个组件。
  • 当第二个组件添加到 CENTER 的相同约束(在本例中为 BorderLayout )时,此 Java 实现将显示最后添加的组件。

至于什么是更好的方法取决于用户界面的具体需求。

关于java - 为什么添加到框架的第一个面板会消失?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58732075/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com