我尝试运行以下代码,但是当选中单选按钮trueButton或falseButton时,它不会突破for循环。
for(;;){
if (trueButton.isSelected() || falseButton.isSelected()){
System.out.print("Selected");
break;
}
}
但是,如果我添加System.out.println("");在if语句之前,当能够选择trueButton或falseButton时,我能够跳出for循环。
for(;;){
System.out.println("");
if (trueButton.isSelected() || falseButton.isSelected()){
System.out.print("Selected");
break;
}
}
我是否可以在if语句之前添加System.out.println("")而突破循环?
如果有人能解释为什么第一个代码也不起作用,那就太好了。
由于我是编程新手,如果我对任何事情一无所知,请原谅我。
编辑:我在下面创建了一个类似的场景供大家测试。
public static void main(String[] args){
JFrame window = new JFrame("Hello");
JRadioButton trueButton = new JRadioButton("True ");
JRadioButton falseButton = new JRadioButton("False ");
window.setSize(400, 325);
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setLayout(new FlowLayout());
window.add(trueButton);
window.add(falseButton);
trueButton.setVisible(true);
falseButton.setVisible(true);
window.setVisible(true);
for(;;){
if (trueButton.isSelected() || falseButton.isSelected()){
System.out.println("Selected");
break;
}
}
System.out.println("Done");
}
如果我们设法摆脱循环,"完成"应该打印出来。
答案 0 :(得分:3)
编写GUI时,应该不惜一切代价阻止循环,因为它会导致您的应用无响应。
你应该将ActionListener添加到"反应"单击按钮时。否则,您只需使用isSelected
方法检查单击了哪个按钮而没有循环;例如,提交表单或执行某些计算时。
如果您绝对需要不断阅读按钮的状态,请使用Thread
。
答案 1 :(得分:1)
试试这个:
for(;;){
if (trueButton.isSelected() || falseButton.isSelected()){
System.out.print("Selected");
return;
}
}
或者这个:
outerloop:
for(;;){
if (trueButton.isSelected() || falseButton.isSelected()){
System.out.print("Selected");
break outerloop;
}
}
否则看起来一切都正确... 希望这有帮助