Topic: 新手问题·JFace里面怎么在action中操作窗体控件?

  Print this page

1.新手问题·JFace里面怎么在action中操作窗体控件? Copy to clipboard
Posted by: kabbesy
Posted on: 2005-06-24 16:05

先说一下,我是新手,无论swt还是jface

使用swt-designer辅助开发,Jface部分它的生成风格是

private Action exit;
private void createActions() {
exit = new Action("&Exit") {
public void run() {
System.exit(1);
}
};
}


但是我从一些ebook,还有网上学到的风格都是

public class ExitAction extends Action
{
ApplicationWindow window;

public ExitAction(ApplicationWindow w)
{
window = w;
setText("E&xit");
}

public void run()
{
window.close();
}
}


不知道为什么swt-designer的代码结构跟那些教程上的差这么多(我用的已经是4.0最新版本的了)
而且还有一个关键,如果用前面的那种风格,我在每个菜单项action的run方法中,怎么能够操纵到窗体其它的部件呢?
而且swt-designer的窗体组件内容,全部都是在createContent里面构建的,而不是以私有成员的形式,这样成员间就没机会互相访问到了,我尝试着直接使用getShell()或者getContent,又不知道这样一层层的深入怎么访问那些构件元素。(好像也没看到类似于keyset的东东)

>__< 惨了,哪位大牛麻烦解答一下啊

2.Re:新手问题·JFace里面怎么在action中操作窗体控件? [Re: kabbesy] Copy to clipboard
Posted by: kabbesy
Posted on: 2005-06-24 16:37

我自己有个土办法,就是把那些需要引用的控件
在类里加入个同名的私有引用
然后最后在createContent里,用this.xxx=xxx来复制一次引用

但是……这样……是不是违背了啥原则了?要不为啥swt-designer和jface都那样支持createContent的代码结构呢?

3.Re:新手问题·JFace里面怎么在action中操作窗体控件? [Re: kabbesy] Copy to clipboard
Posted by: cnfree
Posted on: 2005-06-25 11:02

swt-designer生成的都是垃圾代码,需要做大量的重构才能使用,你的土办法好像不大好,把不该暴露出来的信息也暴露出来了,而且偶合性太大

4.Re:新手问题·JFace里面怎么在action中操作窗体控件? [Re: kabbesy] Copy to clipboard
Posted by: kabbesy
Posted on: 2005-06-25 18:27

-__-b

就是图swt-designer的可视化去的……介个……怎么弄?
有开发SWT/JFace的前辈说说么?

而且swt-designer特别喜欢用inner class
搞得经常很无奈

5.Re:新手问题·JFace里面怎么在action中操作窗体控件? [Re: kabbesy] Copy to clipboard
Posted by: kite
Posted on: 2005-06-25 18:44

只用它生成ui的layout,不要添加任何执行代码。同时,在加入Control的时候为这个control生成getter和setter。

6.Re:新手问题·JFace里面怎么在action中操作窗体控件? [Re: kabbesy] Copy to clipboard
Posted by: kabbesy
Posted on: 2005-06-28 18:56

有没有人知道swt-designer自动代码中
为什么要把窗体控件直接的相互引用屏蔽掉?

见过IBM一篇tutorial里面说到过:
GUI庞大后,元素之间的引用访问变得庞杂而无序
有一种解决办法是:所有引用全部通过窗体来进行
窗体内部预制对某些控件的某些访问
直接引用控件的方法被屏蔽掉

这样有什么问题没?可靠性?重用,重构?

另外,如果都是通过窗体的内置方法来访问
如何让构件(包括菜单action、各个view的provider,sorter等)
尽量可以独立于原窗体应用而独立存在?


   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923