cou*_*nt0 5 java eclipse java-ee windowbuilder eclipse-indigo
摘要:我正在寻找一种方法来配置Eclipse Window Builder的代码生成器,以将其对象引用放在类主体中,而不是在initalize()方法中本地放置.
详细:
Window builder有一个内置的代码生成器/代码分析器,可以从"图形表单设计器"生成GUI代码,反之亦然.快速设计GUI并了解各种框架如何在java中工作(特别是对于Java初学者)非常有用.但是,当我转向更复杂的GUI设置时,我在设计中使用生成的代码时遇到了问题.问题是大多数生成的代码都放在initialize()方法中,这使得对象驻留在本地范围内并且很难从"外部"获得引用.
到目前为止,我已经手动将类型声明从initialize()方法复制/粘贴到类体中作为公共访问它们,但这似乎是错误的方法.只要我不从图形设计器中重新组织GUI,它就可以正常工作.在这种情况下,代码生成器会在方法中再次放置它的类型声明.initialize()
自动生成的代码如下所示:
// AUTO-GENERATED CODE
public class MyGUI {
private void initialize() {
// gui objects declared AND created in this scope by Window Builder
JFrame frame = new JFrame();
JPanel panel_1 = new JPanel();
frame.getContentPane().add(panel_1);
}
}
Run Code Online (Sandbox Code Playgroud)
我想要的是:
public class MyGUI {
// accessible from outside
public Frame frame = null;
public JPanel panel_1 = null;
private void initialize() {
// gui objects only created in this scope
frame = new JFrame();
panel_1 = new JPanel();
frame.getContentPane().add(panel_1);
}
}
Run Code Online (Sandbox Code Playgroud)
我一直在寻找一个解决方案的文档(稀缺的文档),并研究了各种Window Builder的偏好,但到目前为止没有运气.有'数据绑定'但它似乎实现了MVC(将gui元素绑定到模型)并且相当过分.
是否存在我缺少的设计模式,或者我是否应该以initialize()某种方式"捕获"当地范围内的参考?
在“首选项”窗口中,展开 WindowBuilder 和 Swing(或 SWT),然后展开代码生成。有一些选项可以在本地声明变量,作为类级字段,并延迟初始化。您还可以选择平面或块语句。文档中的 WindowBuilder Pro 用户指南 > 首选项 > Swing 下有一些示例,说明要查找的内容。
| 归档时间: |
|
| 查看次数: |
2218 次 |
| 最近记录: |