Agu*_*tín 1 java swing button jradiobutton
正如我在其他帖子中所说,我是Java的新手,我有一些愚蠢的问题,这是交易:
我有一个radioButton(radioStock)和一个textField(stockField).我希望stockField默认为setEnabled(false),没问题,每当选中radioStock时,将stockField设置为true.我写了这段代码,但它不起作用.
if (radioStock.isSelected()) {
stockField.setEnabled(true);
}else{
stockField.setEnabled(false);
}
Run Code Online (Sandbox Code Playgroud)
该代码需要位于附加到JRadioButton的侦听器中,例如ActionListener或ItemListener.而且你甚至不需要if块,因为你需要的只是一个代码内部的一行代码:
radioStock.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent itemEvent) {
stockField.setEnabled(itemEvent.getStateChange() == ItemEvent.SELECTED);
}
});
Run Code Online (Sandbox Code Playgroud)
有关使用JRadioButtons的更多信息,请查看教程:按钮教程.
编辑我的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();
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2539 次 |
| 最近记录: |