Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在NetBeans中重新生成自动生成的代码?_Java_User Interface_Netbeans - Fatal编程技术网

Java 如何在NetBeans中重新生成自动生成的代码?

Java 如何在NetBeans中重新生成自动生成的代码?,java,user-interface,netbeans,Java,User Interface,Netbeans,在NetBeans中创建一个项目并创建一个新的JFrame 使用GUI Builder将一些组件(如按钮或标签)拖到框架上,并查看和显示源代码。默认情况下,您将看到成员变量在frame类中是私有的 现在转到工具->选项->杂项->GUI生成器,将变量修改器之类的内容更改为受保护而不是私有 现在,如何将这些更改应用于已生成的代码?我尝试过一些方法,比如格式化代码、修复代码等。我甚至尝试过将所有组件从框架中剪掉,然后重新绘制它们,希望能够修复问题,但它仍然使用旧的设置 当我在项目中创建一个新的JFr

在NetBeans中创建一个项目并创建一个新的JFrame

  • 使用GUI Builder将一些组件(如按钮或标签)拖到框架上,并查看和显示源代码。默认情况下,您将看到成员变量在frame类中是私有的

  • 现在转到工具->选项->杂项->GUI生成器,将变量修改器之类的内容更改为受保护而不是私有

  • 现在,如何将这些更改应用于已生成的代码?我尝试过一些方法,比如格式化代码、修复代码等。我甚至尝试过将所有组件从框架中剪掉,然后重新绘制它们,希望能够修复问题,但它仍然使用旧的设置

    当我在项目中创建一个新的JFrame并再次执行步骤2时,更改已经生效。在新的框架或文件上生成的任何新代码都能按预期工作,但不是原始代码

    这是一种非常奇怪的行为,我必须想象有一种简单直接的方法来重新生成代码。我错过什么了吗


    我正在使用NetBeans7.1和Java7U2。提前谢谢

    正如您已经提到的,GUI生成器选项只是用于创建表单的默认选项

    您可以更改已经生成的GUI元素的大部分内容

    要将GUI组件的“访问权限”从
    private
    更改为
    protected
    ,请在GUI设计器中右键单击该组件并选择“自定义代码”。在“CodeCustomizer”对话框的底部,您可以更改GUI元素声明的任何方面。该对话框还允许您自定义元素所用的构造函数等内容

    我建议您将访问默认设置为
    private
    ,只更改确实需要
    保护的元素,甚至
    公共的元素

    不要听末日预言者的话。我们的应用程序中有600多个GUI设计的表单,我们每天都与多个开发人员一起使用GUI设计器,我们很少遇到任何问题


    顺便说一句,我们正在使用6.9.1版的NetBeans和Java6,所以YMMV。

    我真的建议不要使用GUIBuilder。你自己发现了一个问题。此外,无法编辑为您生成的代码。以前是这样,现在不确定了。如果您没有使用依赖于绝对定位的布局,那么如果此人调整屏幕大小,则您的组件将出现问题。相反,学习如何使用一个好的布局管理器,比如jgoodies表单布局。这很简单,会让你的生活轻松很多。问得好!不幸的是,我很确定你不能这么做。我相信我的回答对你的问题是正确的。也许你可以这样标记?哈哈,“根本没有问题。”我们在这里的体验正好相反。也许你想和GUI构建者分享你遇到的问题?更妙的是,为什么不在这里提出一个问题,列出你所面临的问题,并询问是否有人能解决这些问题。我很肯定我能帮上大部份的忙。顺便说一句,您使用的是什么版本的NetBeans?顺便说一句,现在有1000多个表单,但仍然没有重大问题。(1)对于多个版本,它不尊重bean.isDesignTime()标志,因此,除非组件在关闭设计时的情况下在NetBeans中正常工作,否则无法编辑任何表单。(2) 它将宽度和高度的幻数插入到我们的布局代码中,这会导致任何系统上的布局不正确,而不是您在其中制作布局的系统。(3) 它无法处理ComponentPlacement.INDENT。(4) 它生成的代码中充满了未经检查的警告,迫使我们忽略所有警告,这意味着实际的bug正在被掩盖。(5)它用于绑定的方法也未经检查,在编译时也未被检查,因此如果你重命名模型中的字段,没有人会知道你这么做了,表单将“神秘地”停止工作。(6)它不支持某些属性上的绑定,这些属性肯定有一个setter,这迫使我们为进一步的绑定添加代码。(7) “自动国际化”并不会自动国际化所有字段,只是“文本”之类的基本内容。(8) 如果更改任何组件类,则必须对整个项目进行完全重新编译,否则表单甚至无法打开。