Originariamente inviato da Macgiglio
Mi scrivete un esempio di codice con 2 JRadioButton riuniti in un ButtonGroup che a secondo della scelta, mi abilitano la scrittura in alcuni JTextField (disattivando la scrittura in altri jTextField) e viceversa.....Grazie
Certo, è molto semplice:
codice:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class TestFrame extends JFrame {
private JRadioButton radioButton1;
private JTextField textField1;
private JRadioButton radioButton2;
private JTextField textField2;
public TestFrame() {
super("Test");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(500, 200);
Container contentPane = getContentPane();
contentPane.setLayout(new FlowLayout());
radioButton1 = new JRadioButton("Campo 1");
textField1 = new JTextField(6);
textField1.setEnabled(false);
radioButton2 = new JRadioButton("Campo 2");
textField2 = new JTextField(6);
textField2.setEnabled(false);
contentPane.add(radioButton1);
contentPane.add(textField1);
contentPane.add(radioButton2);
contentPane.add(textField2);
ButtonGroup group = new ButtonGroup();
group.add(radioButton1);
group.add(radioButton2);
ActionListener buttonsListener = new ActionListener() {
public void actionPerformed(ActionEvent e) {
Object src = e.getSource();
textField1.setEnabled(src == radioButton1);
textField2.setEnabled(src == radioButton2);
}
};
radioButton1.addActionListener(buttonsListener);
radioButton2.addActionListener(buttonsListener);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new TestFrame().setVisible(true);
}
});
}
}
Clicca su un radio button e si abilita solo il text field seguente. All'inizio nessuno dei due radio è marcato, quindi nessuno dei text field è abilitato!