【发布时间】:2014-07-15 21:53:06
【问题描述】:
这是我在主类中的一段代码:
JFrame frame = new JFrame();
JPanel panel = new JPanel();
GPComponent gp = new GPComponent(n, k);
GPinfinityComponent gpi = new GPinfinityComponent(n, k);
panel.add(gp);
panel.add(gpi);
frame.add(panel, BorderLayout.CENTER); // just to be clear
frame.setVisible(true);
final int FRAME_WIDTH = 600;
final int FRAME_HEIGHT = 600;
frame.setSize(FRAME_WIDTH, FRAME_HEIGHT);
frame.setTitle("GP("+n+", "+k+")");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
GPComponent 和 GPinfinityComponent 的细节是不必要的......它们扩展了 JComponent,当我将它们单独放入框架(不使用面板)时,它们工作正常。但是,我想使用 JPanel 将一个显示在另一个之上,这样我就不必运行程序来完成相同的任务。稍后将使用自定义方法单独更新每个 JComponents……这一切都有效,直到我尝试将它们组合起来。本质上,我的问题是我是否设置了将 JComponents 添加到 JPanel,然后正确地添加到 JFrame?我只想让我的组件显示...
【问题讨论】:
-
我可能是错的,但您可能想尝试将面板添加到框架的
contentPanel而不是直接添加到框架(虽然我还没有实际测试过,所以我不确定它是否将解决您的问题) -
没关系:
JFrame#add()转发到内容窗格。为什么不CardLayout?