我创建了类NewProject扩展了JInternalFrame。然后我创建了New ... Action命名为“NEW”,本地化在File菜单中。我将代码NewProject p = new NewProject(); p.setVisible(true);
放到ActionPerformed方法中。
但是当我运行模块并在文件菜单中单击“新建”时,什么都没有出现。 哪里有问题?
修改 我通过代码部分地解决了它:
public void actionPerformed(ActionEvent e) {
JInternalFrame f = new JInternalFrame();
f.setSize(500, 500);
f.setVisible(true);
JDesktopPane p = new JDesktopPane();
p.add(f);
//WindowManager.getDefault().getMainWindow().setTitle("fFF");
WindowManager.getDefault().getMainWindow().add(p)
}
但GUI已被破坏。当我创建新的内部框架时,黑色背景会在我移动该框架时出现。 知道怎么解决吗?
答案 0 :(得分:2)
JInternalFrame
的习惯Container
为JDesktopPane。文章How to Use Internal Frames概述了要点,您可能希望在此上下文中使用Action
和JMenu
这么简短example。
尽管NetBean的GUI编辑器很吸引人,但您可能希望首先使用Swing组件变得更加舒适。
附录:您无法向Top-Level Container之类的JFrame
添加一个JDesktopPane,但您可以向JInternalFrame
添加任意数量的JDesktopPane个实例}。试试demo,看看它是如何运作的。
附录:啊,你的意思是NetBeans Platform。对不起,我没用过。
答案 1 :(得分:1)
我认为您正在寻找的答案是:https://blogs.oracle.com/geertjan/jdesktoppane,-jinternalframe,-and-topcomponent
Geertjan Wielenga使用take
内部TopComponent
显示示例,您可以在其中附加一些JDesktopPane
。
JInternalFrame