代码之家  ›  专栏  ›  技术社区  ›  KJW

Netbeans 6.8:ActionListener混淆

  •  0
  • KJW  · 技术社区  · 14 年前

    我有两个模块:浏览器库和浏览器浏览器。

    浏览器和其他浏览器一样包含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个模块:浏览器库、浏览器、浏览器?在这种情况下,依赖关系如何工作?浏览器依赖浏览器库吗?浏览器依赖浏览器吗?

    所以在浏览器模块中,我将拥有实现ActionListener的browsercontroller类?

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

    我应该使用查找吗?如何在这里合并?

    1 回复  |  直到 14 年前
        1
  •  0
  •   Devon_C_Miller    14 年前

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

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