gpt4 book ai didi

java - JPanel 不显示在 JFrame 上

转载 作者:行者123 更新时间:2023-12-02 05:39:16 29 4
gpt4 key购买 nike

问题 - 下面给定的代码不显示我的 JPanel(PageOne),我不确定为什么它不显示我的 JPanel(PageOne)。请帮忙。

我已将 JPanel(PageOne) 添加到我的面板中,该面板具有 cardLayout();我已经将 JFrame 设置为可见。

PageOne.java

   import javax.swing.JLabel;
import javax.swing.JPanel;

public class PageOne extends JPanel {

public PageOne() {
JLabel label = new JLabel("Page 1");
JPanel panel = new JPanel();
panel.add(label);
} }

PageTwo.java

   import javax.swing.JLabel;
import javax.swing.JPanel;

public class PageTwo extends JPanel {

public PageTwo() {
JLabel label = new JLabel("Page 2");
JPanel panel = new JPanel();
panel.add(label);
}
}

DisplayUI.java

   import java.awt.CardLayout;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;

public class DisplayUI {

public static void main(String[] args) {
new DisplayUI();
}

public DisplayUI() {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
CardLayout cardLayout = new CardLayout();
JFrame frame = new JFrame("frame");
JPanel panel = new JPanel();
panel.setLayout(cardLayout);
panel.add(new PageOne(), "1");
panel.add(new PageTwo(), "2");
cardLayout.show(panel,"1");
frame.add(panel);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
});
}
}

最佳答案

您实际上并没有向 PageOnePageTwo 面板添加任何内容...

public PageOne() {
JLabel label = new JLabel("Page 1");
JPanel panel = new JPanel();
panel.add(label);
// But nothing is actually added to "this"...
}

除非您“确实”需要它,否则您可以删除第二个 JPanel 并将 label 直接添加到 PageOne (并且PageTwo 也是如此)

public PageOne() {
JLabel label = new JLabel("Page 1");
add(label);
}

或者添加您创建的JPanel(其中包含标签)

public PageOne() {
JLabel label = new JLabel("Page 1");
JPanel panel = new JPanel();
panel.add(label);
add(panel);
}

记住,JPanelContainer的类型,它可以有子组件。

关于java - JPanel 不显示在 JFrame 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24645902/

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