改变jButton的功能是不好的设计?

时间:2013-03-11 19:52:09

标签: java swing jbutton actionlistener

我正在编写一个使用jButton的小应用程序。为了这个问题,我们称之为nextButton。在整个程序生命周期中改变jButton的功能是不好的设计?有点像状态机。

所以说每次点击nextButton我的应用程序模式都会转换到下一个“状态”,视图也会相应地改变。

class NextButtonListener implements ActionListener {
    public void actionPerformed(ActionEvent e) {
        ServiceMode mode = model.getMode();    
        switch (mode) {
            case SELECT:
                // alter view and give nextButton function1
                ...
                model.setMode(ServiceMode.CHECK);         
            break;
            case CHECK:
                // alter view and give nextButton function2
                ...
                model.setMode(ServiceMode.COPY);    
            break;                
            case COPY:
                // alter view and give nextButton function3
                ...
                model.setMode(ServiceMode.END);                    
            break;                
            case END:
                // alter view and give nextButton function4                   
                ... 
            break;
        }
    }
}

使用自己的功能实例化新按钮是否更好?或者如果可能的话,最好使用一个具有多种功能的按钮?

2 个答案:

答案 0 :(得分:2)

为了确保用户知道按下按钮后会发生这种情况,我建议根据上下文更改按钮标签甚至图标(JButton.setText)。

否则,似乎不是问题。根据上下文改变,显示或消失的按钮很常见,特别是在像工具栏这样的地方。

答案 1 :(得分:1)

不,设计不错。一起去吧。