【问题标题】:Cardlayout doesn't appear panels inside cards on InternalFrame卡片布局不会出现在 InternalFrame 卡片内的面板
【发布时间】:2014-07-10 11:25:55
【问题描述】:

我有一个用于 InternalFrame 的 cardLayout

public class CardWindow extends InternalWindowTemplate{
    CardLayout cardLayout;
    private final JLabel label1, label2;
    private final JPanel panel1, panel2, cards, card1, card2;

    public CardWindow(){
        super("Elements", false, true, false, false,438,520);
        this.panel1= new JPanel(); 
        panel1.setBackground(Color.red);

        this.panel2= new JPanel();
        panel2.setBackground(Color.CYAN);

        this.label1= new JLabel("Label #1");
        panel1.add(label1);

        this.label2= new JLabel("Label #2");
        panel2.add(label2);

//        create first card
        this.card1 = new JPanel(); 
        card1.setBackground(Color.ORANGE);
        card1.add(panel1);
        card1.add(panel2);

    //        create second card
        this.card2 = new JPanel();
        card2.setBackground(Color.BLACK);
        label1.setText("1");
        label2.setText("2");
        card2.add(panel1);
        card2.add(panel2);

        this.cards = new JPanel();
        this.cardLayout = new CardLayout();
        cards.setLayout(cardLayout);
        cards.add(card1);
        cards.add(card2);

        addComponentToInternalWindow(cards);
}

最后一条语句来自我的内部窗口抽象类

public abstract class InternalWindowTemplate{
//...
    public void addComponentToInternalWindow(Component component){
        setFlowLayout();
        getContainer().add(component);
    }
}

当我运行它时,我只能看到 card1 的橙色背景,但看不到我添加的面板。这是为什么呢?

【问题讨论】:

    标签: java swing jpanel cardlayout


    【解决方案1】:

    “当我运行它时,我只能看到 card1 的橙色背景,而看不到我添加的面板。这是为什么?”

    一个组件可以有一个并且只有一个父级。如果一个组件被添加到多个容器中,那么只有它添加到的最后一个容器会维护该组件。

    话虽如此,您将panel1panel2 添加到card1。然后将相同的panel1panel2 添加到card2。所以card2 是赢家。由于card1 是第一个显示的(因为它是第一个被添加的),所以您只会看到一个带有橙色背景的空card1

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-05-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-27
      • 2016-10-24
      相关资源
      最近更新 更多