Netbeans 6.8:Actionlistener混乱

时间:2010-07-11 01:30:06

标签: java swing netbeans6.8

我有2个模块:BrowserLibrary和BrowserViewer。

浏览器包含gui,就像任何浏览器一样。

所以在BrowserLibrary模块中我有一个像这样的类:

public class BrowserController implements ActionListener{

    public void actionPerformed(ActionEvent e) {
        if (e.getSource().getVarName() == "navButton")
        System.out.println("clicked");
    }

}

并在BrowserViewer模块的BrowserTopComponent.java中:

private javax.swing.JButton navButton;
navButton.addActionListener(BrowserController);

我不确定这是否是我应该追求的正确设计。 BrowserLibrary是否应仅用于加载第三方JAR而不是其他内容?如果是这样,我最终会得到3个模块:BrowserLibrary,Browser,BrowserViewer?在这种情况下,依赖项将如何工作?浏览器是否依赖于BrowserLibrary,而BrowserViewer依赖于浏览器?

所以在Browser模块中,我会有BrowserController类来实现ActionListener?

另外,如何获取e.getSource()对象的变量名?在这种情况下,“navButton”是JButton的变量名。

我应该使用Lookup吗?怎么会被纳入这里?

1 个答案:

答案 0 :(得分:0)

模块的数量和组成应反映您的设计的模块性。一个很好的问题是“这个模块可以在没有其他模块的情况下重复使用吗?”如果答案是否定的,那么所讨论的模块是紧密耦合的,应该只是一个模块。例如,可以独立于浏览器使用处理HTTP协议的模块。在浏览器中导航的操作可能以浏览器为中心,可能无法单独使用。

变量是运行时实例,但变量名实际上是程序员用来引用变量的编译时工件。也就是说,所有swing组件都有一个可用于识别的名称属性。请注意,开发人员有责任确保唯一性。