2011-11-09 19 views
9

मैं ग्रहण और विंडो बिल्डर प्रो के साथ स्विंग का उपयोग कर जावा जीयूआई बना रहा हूं। मैं JButtons और JToggleButtons का उपयोग कर रहा हूं। मैं टॉगल बटन की स्थिति को किसी अन्य बटन से बदलना चाहता हूं।किसी अन्य बटन से टॉगल बटन बदलें

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

ActionListener को JButton उदाहरण पर पंजीकृत करें और सुनिश्चित करें कि आप अपने राज्य में हेरफेर करने के लिए उसमें टॉगल बटन तक पहुंच सकते हैं।

+0

टॉगल बटन का कौन सा फ़ंक्शन इसके राज्य को बदलता है? –

+1

देखें ['सेट सेलेक्टेड (झूठा) '] (http://download.oracle.com/javase/6/docs/api/javax/swing/AbstractButton.html#setSelected%28boolean%29) – mre

+3

बटन स्थिति को टॉगल किया जा सकता है 'doClick()' का उपयोग करके या 'सेट सेलेक्टेड (बूलियन)' का उपयोग करके सेट करें। प्रत्येक के प्रभाव के लिए javadocs जांचें। –

4

एक्शन लिस्टनर को अपने जेबटन में जोड़ें और कार्रवाई में सुधारित (एक्शनवेन्ट) विधि सभी JToggleButtons की स्थिति को बदल देती है। सुनिश्चित करें कि आपके सभी JToggle बटन इस विधि में पहुंच योग्य है। एक साधारण उदाहरण होगा ..

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

मैं इस लिए देख रहा था, इस किसी बाहर

B1.setSelected(false); 

मदद कर सकता है मैं एक विधि है कि मेरे सारे बटन झूठी कर बनाया (जब मैं चाहता था तो टॉगल का चयन रद्द करें)

संबंधित मुद्दे