2011-11-09 16 views
9

EclipseとWindow Builder ProでSwingを使ってJava GUIを作成しています。私はJButtonsJToggleButtonsを使用しています。別のボタンからトグルボタンの状態を変更したい。トグルボタンの状態を別のボタンから変更する

enter image description here

例えば、私は明確なグリッドをクリックすると、すべてのトグルボタンが「選択されていない」となります。

どうすればいいですか?ボタンとボタンの切り替えにはどのような方法が必要ですか?

答えて

5

toggleButton.setSelected(boolean b)

import java.awt.BorderLayout; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import javax.swing.AbstractButton; 
import javax.swing.JFrame; 
import javax.swing.JToggleButton; 

public class JToggleButtonAction { 

    public static void main(String args[]) { 
     JFrame frame = new JFrame("Selecting Toggle"); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     JToggleButton toggleButton = new JToggleButton("Toggle Button"); 
     final JToggleButton toggleButton1 = new JToggleButton("Another Toggle Button"); 
     ActionListener actionListener = new ActionListener() { 

      @Override 
      public void actionPerformed(ActionEvent actionEvent) { 
       AbstractButton abstractButton = (AbstractButton) actionEvent.getSource(); 
       boolean selected = abstractButton.getModel().isSelected(); 
       System.out.println("Action - selected=" + selected + "\n"); 
       toggleButton1.setSelected(selected); 
      } 
     }; 
     toggleButton.addActionListener(actionListener); 
     frame.add(toggleButton, BorderLayout.NORTH); 
     frame.add(toggleButton1, BorderLayout.SOUTH); 
     frame.pack(); 
     frame.setVisible(true); 
    } 
} 
3

インスタンスJButtonActionListenerを登録し、その中のトグルボタンにアクセスしてその状態を操作できることを確認してください。

+0

トグルボタンのどの機能が状態を変えていますか? –

+1

['setSelected(false)'](http://download.oracle.com/javase/6/docs/api/javax/swing/AbstractButton.html#setSelected%28boolean%29) – mre

+3

ボタンの状態を切り替えることができます'doClick()'を使うか、 'setSelected(boolean)'を使って設定します。それぞれの効果についてjavadocsを確認してください。 –

4

actionListenerをJButtonに追加し、actionPerformed(ActionEvent)メソッドですべてのJToggleButtonsの状態を変更します。このメソッドでは、すべてのJToggleButtonにアクセス可能であることを確認してください。簡単な例は次のようになります。..

JFrame frame = new JFrame("Panel image demo"); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    frame.setSize(400, 400); 
    frame.setLayout(new FlowLayout()); 

    final JToggleButton[] button = new JToggleButton[10]; 
    for (int i = 0; i < button.length; i++) { 
     button[i] = new JToggleButton("Toggle Us"); 
     frame.add(button[i]); 
    } 
    JButton jButton = new JButton("Toggle that button"); 
    jButton.addActionListener(new ActionListener() { 
     @Override 
     public void actionPerformed(ActionEvent e) { 
      for (JToggleButton jToggleButton : button) { 
       jToggleButton.setSelected(!jToggleButton.isSelected()); // <-- this will change the state of toggle button 
      } 
     } 
    }); 

    frame.add(jButton); 
    frame.setVisible(true); 
1
私はこのために探していた

が、これは私はすべての私のボタンがfalseにする方法を作った誰かアウト

​​

に役立つかもしれません(私が望むときトグルの選択を解除する)

関連する問題