該代碼需要位於附加到JRadioButton的偵聽器中,如ActionListener或ItemListener。你甚至都不需要了,如果塊,因爲所有你需要的是聽者的裏面的一行代碼:
radioStock.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent itemEvent) {
stockField.setEnabled(itemEvent.getStateChange() == ItemEvent.SELECTED);
}
});
更多關於使用JradioButton將的,請查看教程:button tutorial。
編輯我SSCCE
import java.awt.event.*;
import javax.swing.*;
public class ItemListenereg {
private static void createAndShowGui() {
final JRadioButton radioStock = new JRadioButton("Stock", true);
final JTextField stockField = new JTextField(10);
JPanel panel = new JPanel();
panel.add(radioStock);
panel.add(stockField);
radioStock.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent itemEvent) {
stockField.setEnabled(itemEvent.getStateChange() == ItemEvent.SELECTED);
}
});
JOptionPane.showMessageDialog(null, panel);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGui();
}
});
}
}
爲什麼'如果(radioStock ...)'如果這是一個匿名的內部類,那麼源將是什麼? –
它爲什麼要工作?OP應該注意什麼原則?盲目地在OP上拋出代碼就是爲什麼他們遇到了問題,有時我們需要教導如何去釣魚,只是迫使他們魚;) – MadProgrammer