0

別のトグル ボタンをクリックして、トグル ボタンの状態を変更したいと考えています。私のコードはそのようには機能しません。その部分に問題があります:

private void jToggleButton12ActionPerformed(java.awt.event.ActionEvent evt) {                                                
        processValue("+");
        if(values.contains("+"))
            jToggleButton12.setSelected(true);
        else
            jToggleButton12.isSelected();
    }

private void jToggleButton13ActionPerformed(java.awt.event.ActionEvent evt) {                                                
    processValue("-");
    if(values.contains("-"))
        jToggleButton13.setSelected(true);
    else
        jToggleButton13.isSelected();
}                                               

private void jToggleButton14ActionPerformed(java.awt.event.ActionEvent evt) {                                                
    processValue("*");
    if(values.contains("*"))
        jToggleButton14.setSelected(true);
    else
        jToggleButton14.isSelected();
}                                               

private void jToggleButton15ActionPerformed(java.awt.event.ActionEvent evt) {                                                
    processValue("/");
    if(values.contains("/"))
        jToggleButton15.setSelected(true);
    else
        jToggleButton15.isSelected();
}                        

このコードはジョグル ボタンのみを選択し、クリックするとまだ選択されています。

4

2 に答える 2

1

すべてのボタンのすべての切り替えと切り替え解除を手動で処理するのではなく、それらのボタンをButtonGroup

コードは次のようになります。

ButtonGroup group = new ButtonGroup();

group.add(jToggleButton1);
group.add(jToggleButton2);
group.add(jToggleButton3);
//...etc

これにより、すべてのボタンのトグル解除が自動的に処理されます。これで、すべてのボタンが何をするかを処理するだけで済みます。

于 2013-07-19T08:00:57.177 に答える
0

ラジオ ボタンの動作を実現したいと思います。つまり、一度に 1 つだけ選択されます。これを実装するには、JToggleButton インスタンスの配列を使用することをお勧めします。アクションが実行されたら、この配列を反復処理してすべてのボタンの選択を解除し、その後、特定の条件に従って特定のボタンを設定します。

JToggleButton[] buttons = new JToggleButton[5];
...
private void actionPerformed(java.awt.event.ActionEvent evt) 
{                                                
        processValue("+");

        for(JToggleButton b: buttons)
           b.setSelected(false);
        if(values.contains("+"))
            jToggleButton12.setSelected(true);
}
于 2013-07-19T08:05:10.963 に答える