1

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;
        }
    }
}

それぞれ独自の機能を持つ新しいボタンをインスタンス化する方が良いですか? それとも、できれば1つのボタンに複数の機能を持たせたほうがよいのでしょうか?

4

2 に答える 2

2

ボタンを押した後、今回はそれが発生することをユーザーが確実に理解できるように、コンテキストに応じてボタンのラベルまたはアイコンを変更することをお勧めします(JButton.setText)。

そうでなければ、問題はないようです。特にツールバーのような場所では、コンテキストに応じて変更、表示、または非表示になるボタンが一般的です。

于 2013-03-11T19:57:16.737 に答える
1

いいえ、それは悪いデザインではありません。それと一緒に行きなさい。

于 2013-03-11T19:56:13.023 に答える