gpt4 book ai didi

java - JTextField 无法正常工作

转载 作者:行者123 更新时间:2023-12-01 13:40:46 25 4
gpt4 key购买 nike

我目前正在尝试将事件添加到 JTextField,具体取决于两个复选框,但它似乎无法正常工作。

enter image description here

txKids 是我想要根据这两个复选框 cbChildrenY 和 cbChildrenN 的状态进行修改的 JTextField。

这是我为这些组件编写的代码;

private JCheckBox getCbChildrenY() {
if (cbChildrenY == null) {
cbChildrenY = new JCheckBox("Children (Y)");
cbChildrenY.addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent e) {
showMansions();
}
});
cbChildrenY.setSelected(true);
}
return cbChildrenY;
}

private JCheckBox getCbChildrenN() {
if (cbChildrenN == null) {
cbChildrenN = new JCheckBox("Children (N)");
cbChildrenN.addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent e) {
showMansions();
}
});
cbChildrenN.setSelected(true);
}
return cbChildrenN;
}

private JTextField getTxKids() {
if (txKids == null) {
txKids = new JTextField();
txKids.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if ((getCbChildrenN().isSelected() == true) && (getCbChildrenY().isSelected() == false)){
getTxKids().setEnabled(false);
getTxKids().setEditable(false);
}
}
});
txKids.setColumns(10);
txKids.setBounds(203, 350, 78, 20);
}
return txKids;
}

希望您能帮我一点忙,先谢谢了。

最佳答案

您应该在单击复选框时处理该操作。请参阅下面我的代码。

private JCheckBox getCbChildrenY() {
if (cbChildrenY == null) {
cbChildrenY = new JCheckBox("Children (Y)");
cbChildrenY.addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent e) {
showMansions();
handleTxKids();
}
});
cbChildrenY.setSelected(true);
}
return cbChildrenY;
}
private JCheckBox getCbChildrenN() {
if (cbChildrenN == null) {
cbChildrenN = new JCheckBox("Children (N)");
cbChildrenN.addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent e) {
showMansions();
handleTxKids();
}
});
cbChildrenN.setSelected(true);
}
return cbChildrenN;
}

private JTextField getTxKids() {
if (txKids == null) {
txKids = new JTextField();
txKids.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
//do something.
});
txKids.setColumns(10);
txKids.setBounds(203, 350, 78, 20);
}
return txKids;
}
private void handleTxKids() {
if ((getCbChildrenN().isSelected() == true) && (getCbChildrenY().isSelected() == false)){
getTxKids().setEnabled(false);
} else {
getTxKids().setEnabled(true);
}
}

关于java - JTextField 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20806405/

25 4 0
文章推荐: java - JFxtas Lcd 仪表最大值
文章推荐: java - JAX-RS 自动将 List 编码为 JSON