正如我在其他帖子中所说的那样,我是 Java 新手,遇到了一些愚蠢的问题,事情是这样的:
我有一个单选按钮 (radioStock) 和一个文本字段 (stockField)。我希望默认情况下stockfield设置(false),这没问题,并且每当检查Radiostock时,都会在True上设置Stockfield。我写了这段代码,但它不起作用。
if (radioStock.isSelected()) {
stockField.setEnabled(true);
}else{
stockField.setEnabled(false);
}
最佳答案
该代码需要位于附加到 JRadioButton 的监听器中,例如 ActionListener 或 ItemListener。而且您甚至不需要 if block ,因为您只需要在监听器中添加一行代码:
radioStock.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent itemEvent) {
stockField.setEnabled(itemEvent.getStateChange() == ItemEvent.SELECTED);
}
});
更多关于 JRadioButtons 的使用,请查看教程: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();
}
});
}
}
关于java - setEnabled(true) 当 radioButton.isSelected(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17890704/