Java 如何在NetBeans中刷新自定义bean?
我想在NetBeans IDE中设计一个相对复杂的UI。我相信,将所有这些组件集中在一个面板中会加大此类面板维护的难度 为此,我在扩展Java 如何在NetBeans中刷新自定义bean?,java,swing,netbeans,matisse,Java,Swing,Netbeans,Matisse,我想在NetBeans IDE中设计一个相对复杂的UI。我相信,将所有这些组件集中在一个面板中会加大此类面板维护的难度 为此,我在扩展JPanel的多个自定义bean中分解了这个结构。在主面板中,我通过调色板工具栏中的ChooseBean按钮将它们包括在内 一切看起来都很正常,但当我更改其中一个子bean时,主面板中导入的自定义bean上不会发生更改 请告诉我如何重新加载那个bean?谢谢 为此,我已在多个自定义项目中分解了此结构 扩展JPanel的bean。在主面板中,我已经通过 选择调色板工
JPanel
的多个自定义bean中分解了这个结构。在主面板中,我通过调色板工具栏中的ChooseBean按钮将它们包括在内
一切看起来都很正常,但当我更改其中一个子bean时,主面板中导入的自定义bean上不会发生更改
请告诉我如何重新加载那个bean?谢谢
为此,我已在多个自定义项目中分解了此结构
扩展JPanel的bean。在主面板中,我已经通过
选择调色板工具栏中的Bean按钮
作为一个初学者,我想说这是一个非常有效的方法,对于未来的访问者,您将按照所描述的步骤将面板添加到主面板。通过将bean直接从Projects浏览器拖放到Design视图,也可以做到这一点
每件事看起来都很好,但当我改变其中一个子bean时
主面板中导入的自定义bean没有发生更改
简而言之,答案如下:
现在,请考虑下面的例子(对于扩展表示抱歉)。 1.创建自定义面板 转到新文件→ SwingGUI窗体→ 杰帕内尔。命名它
CustomPanel
2.将布局管理器设置为FlowLayout
注意:如果它说默认值,并不意味着它是使用的默认值,而是默认的porJPanel
class。正如我所说,默认情况下使用的布局管理器是GroupLayout
3.向面板添加一些组件,然后编译文件
注意,生成的代码应该如下所示(根本没有GroupLayout):
公共类CustomPanel扩展了javax.swing.JPanel{
公众谘询委员会({
初始化组件();
}
@抑制警告(“未选中”)
//
私有组件(){
jButton1=newjavax.swing.JButton();
setText(“jButton1”);
添加(jButton1);
}//
//变量声明-不修改
私有javax.swing.JButton jButton1;
//变量结束声明
}
4.创建主面板
按照步骤1创建一个新的JPanel
,并将其命名为MainPanel
5.将CustomPanel
添加到MainPanel
可以使用调色板和自定义Bean,也可以从项目浏览器中拖放并保存更改
注意:如果需要,可以调整此面板的大小。如果转到“导航器”选项卡,您将在主面板内看到自定义面板:
6.修改自定义面板
将布局设置回GroupLayout(自由设计),并根据需要进行修改。保存更改并编译文件
7.重新加载主面板的窗体
转到MainPanel
design视图:它仍然保持不变。转到“导航器”选项卡并重新加载主面板的窗体:
太棒了,主面板现在更新了
从现在起,每次修改自定义面板时,我们都必须编译它们并重新加载主面板的表单(仅步骤6和7:)如何重新加载该bean?==,为了获得更好的帮助,请尽快发布SSCCE/MCVE。简短的、可运行的、可编译的,带有本地语言中JavaBeans的硬编码值variable@mKorbel我读了你的链接,但找不到我的答案!顺便说一下,当我从主面板移除bean并再次添加它时,它将被刷新。我认为这个问题与NetBeans IDE有关,而不是我的codes@mKorbel我认为OP意味着他正在使用Mattise(NetBeans的GUI构建器)添加一个定制bean,如前所述。不要认为OP的bean本身有问题,但是当他编辑这个自定义bean时,目标面板没有更新(同样,在Matisse设计视图中)。我真诚地感谢你非常有用的回答!非常感谢你,我真的很感谢你带蒂姆去
public class CustomPanel extends javax.swing.JPanel {
public CustomPanel() {
initComponents();
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jButton1 = new javax.swing.JButton();
jButton1.setText("jButton1");
add(jButton1);
}// </editor-fold>
// Variables declaration - do not modify
private javax.swing.JButton jButton1;
// End of variables declaration
}