gpt4 book ai didi

java - 即使我用代码执行此操作,复选框也未选中

转载 作者:行者123 更新时间:2023-12-02 06:16:11 26 4
gpt4 key购买 nike

我正在为学校项目编写一个类似于俄罗斯方 block 的 Java 游戏。在游戏中,我有一个用于打开/关闭音乐的复选框。

我的问题是,即使我将其设置为选中,该复选框在我单击它时也不会被选中(不要理解我的错误,不是在之后,而是在我单击它之前/同时)。

好吧,在我首先初始化复选框的代码中,我将其设置为根据另一个类中提供的变量进行检查。

我尝试调试复选框中发生的所有事情,但我没有得到任何我不知道的东西。

这是我初始化框的代码:

music_cbox = TexturesHandler.getCheckboxTemplate();
music_cbox.setName("Music");
music_cbox.addMouseListener(Retris.getButtonHandler());
music_cbox.setLocation(Retris.WIDTH / 2 - 25, 250);

// Setting it to checked based on the variable

if(!Retris.getAudioHandler().canPlay()) {
music_cbox.setIcon(TexturesHandler.getUncheckedCheckBoxStyle());
music_cbox.setSelected(false);
System.out.println("box not selected");
} else {
music_cbox.setIcon(TexturesHandler.getCheckedCheckBoxStyle());
music_cbox.setSelected(true);
System.out.println("box selected");
}

canPlay 变量仅在您单击该框时才会更改:

if(box.isSelected()) {
Retris.getAudioHandler().canPlay(false);
Retris.getAudioHandler().stopMusic();
System.out.println("Music disabled");
box.setIcon(TexturesHandler.getUncheckedCheckBoxStyle());
break;
// (in a switch statement)
} else {
Retris.getAudioHandler().canPlay(true);
Retris.getAudioHandler().startMusic("Main_Menu.wav", "Main Menu", 0.1F);
System.out.println("Music enabled");
box.setIcon(TexturesHandler.getCheckedCheckBoxStyle());
break;
}

在设置新图标和所有内容后,我还尝试了 box.setSelected() ,但不知何故,当我第一次单击该框时,它会执行 else 部分,而不是if 部分。

最佳答案

不确定这是否有帮助,但我注意到在初始化中您调用 music_cbox.setSelected() 但随后在 if 语句中您调用 box.isSelected()

这些是同一个盒子吗?可以解释为什么您设置该变量,然后检查另一个变量。

关于java - 即使我用代码执行此操作,复选框也未选中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55870548/

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