gpt4 book ai didi

java - JCheckBox 选中时返回 false

转载 作者:行者123 更新时间:2023-11-30 03:45:06 25 4
gpt4 key购买 nike

我的表单上有一个 JCheckbox,我正在尝试获取其值并将其放入数据库中。这只是代码的一个片段,但如果还不够,我可以继续发布整个类(class)(虽然它又大又乱,但我会看看我们如何进行)。

// Create checkbox
JCheckBox featuredCB = new JCheckBox();
topPanel.add(featuredCB);

//Take the value of it and put it in featuredCheck value
boolean featuredCheck = featuredCB.isSelected();
System.out.println(featuredCheck);

submitBT.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent event)
{
if(event.getSource() == submitBT)
{
idContent.setUser(userTF.getText());
idContent.setMovie(titleTF.getText());
idContent.setFeatured(featuredCheck);
idContent.setRating(Integer.parseInt(ratingTF.getText()));


if(owner.updateReview(isUpdate, idContent))
{
// success
try {
MovieReviewDSC.add(idContent);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
else
{
// fail

}
}

}

其中还有其他一些东西可以很好地接受和传递,这些信息会显示在数据库中,并且在我的表模型中也显示为未选中。

但是我放入了 System.out.println(featuredCheck); 行来测试它,每次运行它时,即使我选中了复选框,它也会打印 false。有什么想法吗?

最佳答案

您永远不会在 ActionListener 中内部检查featuredCheck 的状态,而是在代码创建的监听器之前、在用户有机会检查它之前检查它。相反,在 ActionListener 内部,您正在检查 boolean 变量、featuredCheck 的状态,并且当复选框的状态更改时,其状态不会神奇地更改。修复此问题:检查需要值的 JCheckBox(不是 boolean 变量)的状态。

所以......

//!! boolean featuredCheck = featuredCB.isSelected(); // ***** get rid of this variable

submitBT.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent event)
{
if(event.getSource() == submitBT)
{
idContent.setUser(userTF.getText());
idContent.setMovie(titleTF.getText());

// !!! idContent.setFeatured(featuredCheck); // **** no *****
idContent.setFeatured(featuredCB.isSelected();); // *****yes ****

idContent.setRating(Integer.parseInt(ratingTF.getText()));
if(owner.updateReview(isUpdate, idContent))
{
// success
try {
MovieReviewDSC.add(idContent);
} catch (Exception e) {
e.printStackTrace();
}
} else
{
// fail
}
}
}

关于java - JCheckBox 选中时返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25948550/

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