EclipseとWindow Builder ProでSwingを使ってJava GUIを作成しています。私はJButtons
とJToggleButtons
を使用しています。別のボタンからトグルボタンの状態を変更したい。トグルボタンの状態を別のボタンから変更する
例えば、私は明確なグリッドをクリックすると、すべてのトグルボタンが「選択されていない」となります。
どうすればいいですか?ボタンとボタンの切り替えにはどのような方法が必要ですか?
EclipseとWindow Builder ProでSwingを使ってJava GUIを作成しています。私はJButtons
とJToggleButtons
を使用しています。別のボタンからトグルボタンの状態を変更したい。トグルボタンの状態を別のボタンから変更する
例えば、私は明確なグリッドをクリックすると、すべてのトグルボタンが「選択されていない」となります。
どうすればいいですか?ボタンとボタンの切り替えにはどのような方法が必要ですか?
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);
}
}
インスタンスJButton
にActionListener
を登録し、その中のトグルボタンにアクセスしてその状態を操作できることを確認してください。
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);
が、これは私はすべての私のボタンがfalseにする方法を作った誰かアウト
に役立つかもしれません(私が望むときトグルの選択を解除する)
トグルボタンのどの機能が状態を変えていますか? –
['setSelected(false)'](http://download.oracle.com/javase/6/docs/api/javax/swing/AbstractButton.html#setSelected%28boolean%29) – mre
ボタンの状態を切り替えることができます'doClick()'を使うか、 'setSelected(boolean)'を使って設定します。それぞれの効果についてjavadocsを確認してください。 –