首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在另一个菜单中打开jFrame的元素和结构

在另一个菜单中打开jFrame的元素和结构
EN

Stack Overflow用户
提问于 2016-07-10 16:25:12
回答 1查看 109关注 0票数 0

我的java项目中有5个jFrames。我想做个主菜。

我的意思是,我希望程序从一个jFrame开始,当我单击一个按钮而不是打开jFrame时,所有的元素,比如标签、按钮和表都显示在我的主体jFrame中。如果我点击其他按钮,主框架将清理和充电其他jframe。

有可能吗?我用java jdk 8和netbeans编程。谢谢

编辑:我想是谁标记的复制不明白我的问题。我不想打开或关闭框架,或者其他框架,我想在同一个框架中加载几个框架的结构和组件。在你开始抱怨之前,请先阅读我的问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-10 17:55:27

我的java项目中有5个jFrames。

这是个问题。

我想做个主菜。我的意思是,我希望程序从一个jFrame开始,当我单击一个按钮而不是打开jFrame时,所有的元素,比如标签、按钮和表都显示在我的主体jFrame中。如果我点击其他按钮,主框架将清理和充电其他jframe。

是的,这可以通过从要在当前显示的contentPane中显示内容的JFrame (通常是JPanel)获得,并使其成为显示JFrame的contentPane,例如:

代码语言:javascript
复制
// create the new JFrame, the one whose content you wish to display
NewJFrame newJFrame = new NewJFrame();

// get its contentPane 
Container newContentPane = newJFrame.getContentPane();

// add this content pane into the displayed JFrame
displayedJFrame.setContentPane(newContentPane);

// revalidate and repaint the JFrame so that its new data is well displayed
displayedJFrame.revalidate();
displayedJFrame.repaint();
// displayedJFrame.pack(); // and you might need to do this if sizes are way off

但是这个额外的体操是笨重的,容易出现错误和不必要的。您通过让类扩展JFrame来将自己画在角落里,迫使您创建和显示JFrames,而这通常需要更多的灵活性。事实上,我敢说我创建的大多数Swing GUI代码以及我所见过的(而不是)扩展了JFrame,实际上,您很少会想要这样做。更常见的情况是,您的GUI类将面向创建JPanels,然后可以将其放置到JFrames或JDialogs或JTabbedPanes中,或者在需要时通过CardLayouts进行交换。这将大大提高GUI编码的灵活性。

对于这种情况,我建议您这样做,让您的GUI类创建JPanels,并将想要交换的那些添加到使用CardLayout的JPanel中。然后,每当您想要显示不同的“卡”时,调用CardLayout对象上的CardLayout,传入使用它的JPanel,以及在向CardLayout中添加"card“JPanel时使用的字符串键--使用JPanel。这在CardLayout教程中都有很好的解释.

其他有用的链接:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38294032

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档