Java Netbeans中从JFrame到JPanel
我正在重新考虑GUI的设计。我设计了一些带有Netbeans自动化GUI的JFrame(是的,我很懒,我知道生成的代码通常很糟糕!),但现在我希望它们是JPanel(实际上,从继承JPanel的另一个类继承)。但是我修改了“setDefaultCloseOperation”,所以我的代码被破坏了:setDefaultCloseOperation对于JPanel是不可能的。由于我无法修改生成的代码,我想知道:有没有办法让Netbeans明白我改变了主意,并重新生成代码 当我遇到这个问题时(我以前也做过同样的事情),我通常不得不修改生成的代码XML文件(.form文件),或者只是复制我添加的所有控件并粘贴到新的JPanel中。只是我的$0.02,但请注意,这可能会破坏您的代码…您可能会查看Java Netbeans中从JFrame到JPanel,java,swing,netbeans,Java,Swing,Netbeans,我正在重新考虑GUI的设计。我设计了一些带有Netbeans自动化GUI的JFrame(是的,我很懒,我知道生成的代码通常很糟糕!),但现在我希望它们是JPanel(实际上,从继承JPanel的另一个类继承)。但是我修改了“setDefaultCloseOperation”,所以我的代码被破坏了:setDefaultCloseOperation对于JPanel是不可能的。由于我无法修改生成的代码,我想知道:有没有办法让Netbeans明白我改变了主意,并重新生成代码 当我遇到这个问题时(我以前也
团队>本地历史
以查看是否可以恢复。在这种情况下,nb不会管理自动重构;添加新面板和复制粘贴旧JFrame中的所有元素更容易(它们的方法也将被复制)。您不能删除setDefaultCloseOperation()和对不再在超类中的方法的任何其他调用吗?既然类不是JFrame,那么进行此调用显然毫无意义。我现在不知道您破坏了什么,但我可以告诉您:您不能告诉Netbeans按照您描述的方式更改自己生成的代码
您可以尝试以下操作(请确保在之前进行备份):
setDefaultCloseOperation…
删除该行李>
getContentPane()
替换为this
pack()代码>在最后一行
(以及其中的所有内容)
李>
更改为
中的内容之外,表单文件中的所有内容都可以删除
祝你好运。是的,你可以简单地复制并粘贴到JPanel上。确保JPanel大小必须大于或等于现有JFrame容器大小。:) 执行此操作之前,请关闭Netbeans中的文件,并备份要编辑的.java和.form文件。 我刚刚遇到了这个问题,并通过更改.form文件修复了它,该文件与给定类型的.java文件一起出现。 在此XML文件的顶部,您将看到:
<Form version="1.3" maxVersion="1.8" type="org.netbeans.modules.form.forminfo.JFrameFormInfo">
完成此操作后,在netbeans中重新打开该文件,它现在会告诉您有一个错误,这是因为您可能设置了一些属性,这些属性不适用于JPanel,但适用于JFrame。只需点击Edit,然后在GUI中更改一个值,这将强制它重新生成生成的代码,这样它将删除不适用的属性 它现在应该为您修复。。 我希望这有点帮助
“干杯 我也遇到了同样的问题,结果证明解决方法相当简单
Form="1.5" maxVersion="1.8" type="org.netbeans.modules.form.forminfo.JPanelFormInfo"
希望这对别人有帮助 您是如何从JFrame转换为JPanel的?您是否尝试设置一些属性来触发代码生成?错误。。。我只是在我的类名后更改了“extensdjframe”。我试着改变属性,但它似乎没有改变任何东西……好吧,Puce的想法对我的一个JFrame有效,并按照Dave的建议与XML混合,奇怪的是,使它重新生成代码。谢谢你的回答!
type="org.netbeans.modules.form.forminfo.JPanelFormInfo"
Form="1.5" maxVersion="1.8" type="org.netbeans.modules.form.forminfo.JPanelFormInfo"