gpt4 book ai didi

java - 如何根据 JCheckBox 的状态启用/禁用我的 JTextField?

转载 作者:搜寻专家 更新时间:2023-11-01 01:05:28 25 4
gpt4 key购买 nike

我在文本字段旁边有一个 Java 复选框。

当复选框被选中时,我希望启用文本框,如果未选中,我不希望它被选中。我用 isSelected() 方法尝试了一个 if 语句,但它没有做任何事情。

我如何响应 JCheckBox 的状态变化?

最佳答案

建议:

  1. 阅读 How to Use Check Boxes教程
  2. 注册ItemListener对于 JCheckBox 实例
  3. 将状态变化(即 getStateChange() )与 ItemEvent.SELECTED 进行比较, 或 ItemEvent.DESELECTED ,然后适本地调用 foo.setEnabled,其中 fooJTextBox 实例。

这是一个 SSCCE :

public final class JCheckBoxDemo {
public static void main(String[] args){
SwingUtilities.invokeLater(new Runnable(){
@Override
public void run() {
createAndShowGUI();
}
});
}

private static void createAndShowGUI(){
final JFrame frame = new JFrame("JCheckBox Demo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(JCheckAndTextPane.newInstance());
frame.setSize(new Dimension(250, 75)); // for demonstration purposes only
//frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}

private static final class JCheckAndTextPane extends JPanel{
private JCheckAndTextPane(){
super();

// Create components
final JTextField textField = new JTextField("Enabled");
final JCheckBox checkBox = new JCheckBox("Enable", true);
checkBox.addItemListener(new ItemListener(){
@Override
public void itemStateChanged(ItemEvent e) {
if(e.getStateChange() == ItemEvent.SELECTED){
textField.setEnabled(true);
textField.setText("Enabled");
}
else if(e.getStateChange() == ItemEvent.DESELECTED){
textField.setEnabled(false);
textField.setText("Disabled");
}

validate();
repaint();
}
});

add(checkBox);
add(textField);
}

public static final JCheckAndTextPane newInstance(){
return new JCheckAndTextPane();
}
}
}

enter image description here

enter image description here

关于java - 如何根据 JCheckBox 的状态启用/禁用我的 JTextField?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7166953/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com