Java 启用/禁用与某个方法关联的JButton

Java 启用/禁用与某个方法关联的JButton,java,swing,jbutton,Java,Swing,Jbutton,我希望在某些类中使用JButton,当某些方法返回true/false(类的方法返回组件-类型boolean) 我不知道怎么做。我应该在(true){…}时编写指令,并检查什么方法返回,例如每秒1次?这是个好主意吗 请帮助 从JavaSE7doc Methods inherited from class javax.swing.AbstractButton 如果将此代码放在方法中,则每当它运行时,它都会相应地启用/禁用按钮 final JButton btnNewButton = new JB

我希望在某些类中使用
JButton
,当某些方法返回
true
/
false
(类的方法返回组件-类型
boolean

我不知道怎么做。我应该在(true){…}时编写指令
,并检查什么方法返回,例如每秒1次?这是个好主意吗

请帮助

从JavaSE7doc

Methods inherited from class javax.swing.AbstractButton
如果将此代码放在方法中,则每当它运行时,它都会相应地启用/禁用按钮

final JButton btnNewButton = new JButton("New button");
btnNewButton.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent arg0) {
        btnNewButton.setEnabled(buttonState());
    }
});

boolean buttonState() {
    return false;
}
我应该在(true){…}时编写指令并检查什么方法 例如每秒返回1次?这是个好主意吗

这是个坏主意,它会完全冻结你的应用程序! 如果要定期检查布尔方法的值,请使用计时器


但是,如果布尔方法是在对象A中定义的,并且您知道A何时被修改,那么您应该将按钮作为侦听器添加到A中,以便当A被修改时,它可以触发按钮中的回调,该回调将评估按钮现在是应启用还是禁用。

JButton.setEnabled(foo());其中foo()是返回true/false的方法。或者在返回true/false JButton.setEnabled(true/false)之前的foo()内部<代码>虽然(真的){…}
是一个非常糟糕的主意(实际上不起作用)。+1对于那张巨大的图片。正常情况下,人们会放一个链接,这将把它带到一个全新的水平。@CPUTerminator谢谢,我尽可能地把它弄清楚了,我想这次应该用大图片。