我正在编写一个使用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;
}
}
}
使用自己的功能实例化新按钮是否更好?或者如果可能的话,最好使用一个具有多种功能的按钮?
答案 0 :(得分:2)
为了确保用户知道按下按钮后会发生这种情况,我建议根据上下文更改按钮标签甚至图标(JButton.setText)。
否则,似乎不是问题。根据上下文改变,显示或消失的按钮很常见,特别是在像工具栏这样的地方。
答案 1 :(得分:1)
不,设计不错。一起去吧。