Java 如何检查JCheckBox的状态?
选中JCheckBoxJava 如何检查JCheckBox的状态?,java,Java,选中JCheckBoxmutemusic\u框时,我想使用player.mute()将我的音乐播放器player静音。 如果未选中该选项并且播放器被禁用,则应执行命令player.mute()。如何让它工作?我的代码当前不工作(可能是因为ActionEvent) 是否选中的检查在actionPerformed中 private JCheckBox pwremember_box, mutemusic_checkbox; //GUI setup public void actionPerform
mutemusic\u框时,我想使用player.mute()
将我的音乐播放器player
静音。
如果未选中该选项并且播放器
被禁用,则应执行命令player.mute()
。如何让它工作?我的代码当前不工作(可能是因为ActionEvent)
是否选中的检查在actionPerformed
中
private JCheckBox pwremember_box, mutemusic_checkbox;
//GUI setup
public void actionPerformed(ActionEvent ae) {
if (mutemusic_checkbox.isSelected()) {
System.out.println("Muted!");
player.mute();
}
else {
System.out.println("Unmuted!");
player.mute();
}
}
你可以使用这个方法
作为个人建议,请将mutemusic\u box
重命名为mutemusic复选框
或类似名称。您可以尝试
mutemusic_box.isSelected();
首先,不需要此检查:
if (ae.getSource().equals(mutemusic_box)) {
ActionListener
应该与JCheckBox
按钮相关联。
因此,没有任何歧义。
然后,为了知道是否选中了复选框,只需使用为其设计的isSelected()
方法。
此外,mute()
不是切换播放器声音的好方法
toggleSound()
可能更有意义
正如我在评论中所解释的,您必须首先将侦听器附加到JCheckBox。
下面是一个示例代码:
checkBoxMute.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent ae) {
if (checkBoxMute.isSelected()) {
System.out.println("Muted!");
player.toggleSound();
}
else {
System.out.println("Unmuted!");
player.toggleSound();
}
}
});
在这里,使用lambda进行同样的操作,而不是创建一个匿名类ActionListener
:
checkBoxMute.addActionListener(
ae -> {
if (checkBoxMute.isSelected()) {
System.out.println("Muted!");
player.toggleSound();
} else {
System.out.println("Unmuted!");
player.toggleSound();
}
});
}
我是java新手。请随意评论,这样我就可以提高我的提问技巧。问题可能出在ActionEvent中。您必须将ActionListener
(包含actionPerformed
)添加到您的复选框中,否则GUI将不知道应该调用actionPerformed
。您可以将此作为答案发布吗?我不知道如何做到这一点。请参阅Oracle教程,这些教程非常有助于学习基础知识和类的使用方法。在右边,至少有到个链接可以提供帮助(链接下)==>在哪里使用它?:)谢谢您的快速回复!一旦你对一个JCheckBox
有了一个引用,你就可以在这个对象上调用它。你能给我举个例子吗?我是java新手;)@realKSMC此处您已注意到您的更新答案:)我将更改名称,谢谢。我会尝试一些东西并给出回应。谢谢你给它重新命名的想法。我试过了,但控制台上没有打印任何内容,而且声音也没有静音。知道吗?不客气。是否确实已将ActionListener附加到选中/取消选中的复选框?是。我将更新我的代码并显示mutemusic\u复选框的外观。它未附加到。我更新了。这很简单。@realKSMC您不能编辑答案来添加自己的答案。如果您认为添加代码是有意义的,那么添加一个答案:)虽然这个代码片段可以解决这个问题,但确实有助于提高您的文章质量。请记住,您将在将来回答读者的问题,这些人可能不知道您的代码建议的原因。
checkBoxMute.addActionListener(
ae -> {
if (checkBoxMute.isSelected()) {
System.out.println("Muted!");
player.toggleSound();
} else {
System.out.println("Unmuted!");
player.toggleSound();
}
});
}