Ich möchte editierbare Möglichkeit, ein Textfeld auf der Grundlage der Auswahl eines Radio-Button? Wie programmiere ich den Aktionslistener auf dem Radio Button?Aktion Listener auf einem Radiobutton
Antwort
Try this:
JRadioButton myRadioButton = new JRadioButton("");
myRadioButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
// Do something here...
}
});
Meine Java ein wenig rostig, aber dies sollte das sein, was Sie suchen.
Hier ist Ihre Zuhörer:
private RadioListener implements ActionListener{
private JTextField textField;
public RadioListener(JTextField textField){
this.textField = textField;
}
public void actionPerformed(ActionEvent e){
JRadioButton button = (JRadioButton) e.getSource();
// Set enabled based on button text (you can use whatever text you prefer)
if (button.getText().equals("Enable")){
textField.setEditable(true);
}else{
textField.setEditable(false);
}
}
}
Und hier ist der Code, der es einrichtet.
JRadioButton enableButton = new JRadioButton("Enable");
JRadioButton disableButton = new JRadioButton("Disable");
JTextField field = new JTextField();
RadioListener listener = new RadioListener(field);
enableButton.addActionListener(listener);
disableButton.addActionListener(listener);
Dies ist die Lösung, die ich in diesem Fall verwenden würde.
//The text field
JTextField textField = new JTextField();
//The buttons
JRadioButton rdbtnAllowEdit = new JRadioButton();
JRadioButton rdbtnDisallowEdit = new JRadioButton();
//The Group, make sure only one button is selected at a time in the group
ButtonGroup editableGroup = new ButtonGroup();
editableGroup.add(rdbtnAllowEdit);
editableGroup.add(rdbtnDisallowEdit);
//add allow listener
rdbtnAllowEdit.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
textField.setEditable(true);
}
});
//add disallow listener
rdbtnDisallowEdit.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
textField.setEditable(false);
}
});
Eine andere Antwort auf diese Frage. Ändern Sie einen kleinen Code aus der Antwort von zalpha314.
könnten Sie wissen, welche Radiobutton durch den Text dieser Schaltfläche ausgewählt ist, und man konnte wissen, dass es auch von Aktion Befehl. In der Optionsschaltfläche des Orakels Demo-Code http://docs.oracle.com/javase/tutorial/uiswing/examples/components/RadioButtonDemoProject/src/components/RadioButtonDemo.java, lernte ich, wie man Aktion Befehl verwendet.
Zunächst definieren zwei Aktionsbefehl
final static String ON = "on"
final static String OFF = "off"
Dann
JRadioButton enableButton = new JRadioButton("Enable");
enableButton.setActionCommand(ON);
JRadioButton disableButton = new JRadioButton("Disable");
disableButton.setActionCommand(OFF);
So in actionPerformed zu Tasten Aktion Befehl hinzufügen, können Sie den Aktionsbefehl erhalten.
public void actionPerformed(ActionEvent e){
String ac = e.getActionCommand();
if (ac.equals(ON)){
textField.setEditable(true);
}else{
textField.setEditable(false);
}
}
Aktion Befehl vielleicht besser, wenn die button.getText()
ist eine sehr lange Zeichenfolge.
Siehe Java Tutorials: http://docs.oracle.com/javase/tutorial/uiswing/components/button.html und http://docs.oracle.com/javase/tutorial/uiswing/events/actionlistener. HTML? – DNA
Diese Frage aus einem Mangel an Forschung typisch ist –
'JCheckbox' scheint mehr apropos. – trashgod