2012-01-26 15 views
2

私は、ボタンを無効にすることを有効にするか、単純なif文を使って元に戻すかを切り替える方法を書こうとしています。Javaスイング、ボタンのテスト状態?

私はそれが

if (buttonDisable.setEnabled(true) == true){ 
    //do stuff 
} 

ようなものになるだろうことを前提としています。しかし、私はグーグル経由で私の答えを見つける多くの幸運を持っていませんでした。

答えて

4

は、モデルの表示をテストしたモデルをテストしないでください。

if (buttonDisable.getModel().isEnabled()) { 
    // do stuff 
} 

あなたがモデルを変更した場合は、発送のレベルを避けるためその方法(ビュー---アップデート--->モデル---アップデート--->ビュー(秒))

Aより良いソリューションは、モデルをビューから独立させることです。この方法では、モデルを変更するために特定のビューを表示する必要があります。

ButtonModel toggle = new ButtonModel(); 
... 
JButton button = new JButton(toggle); 
... 
// this is clear that we are manipulating the model, not the view 
// as new views are added/removed, this toggle will continue to work 
toggle.setEnabled(!toggle.isEnabled()); 
4

理由だけではなく、一発で状態を切り替えない:

buttonDisable.setEnabled(!buttonDisable.isEnabled())