Java Swing问题,为什么changeEvent会使用jButton触发额外的事件?
在尝试学习JButton事件时,我因为一个问题而感到困惑。我使用的示例代码是 代码如下:Java Swing问题,为什么changeEvent会使用jButton触发额外的事件?,java,swing,jbutton,changelistener,Java,Swing,Jbutton,Changelistener,在尝试学习JButton事件时,我因为一个问题而感到困惑。我使用的示例代码是 代码如下: jb.addChangeListener(new ChangeListener() { @Override public void stateChanged(ChangeEvent e) { System.out.println("Changed"); } }); 这是一个演示应用程序,因此只使用一个按钮,并且在应用程序启动时具有焦点。我只需按空格键来模拟
jb.addChangeListener(new ChangeListener()
{
@Override
public void stateChanged(ChangeEvent e)
{
System.out.println("Changed");
}
});
这是一个演示应用程序,因此只使用一个按钮,并且在应用程序启动时具有焦点。我只需按空格键来模拟单击事件。根据教程(由OReilly:JavaSwing编写),它应该触发更改事件两次,然后触发操作事件,然后触发操作事件。i、 e
我在Windows中使用Swing的默认L&F,但得到的结果与教程的预期不同。按按钮时发生的五个事件依次为: ChangeEvent:Armed-true ChangeEvent:按下-为真 按钮事件 ChangeEvent:按下-错误 ChangeEvent:待命-错误 如果您使用鼠标按下按钮,则除上述操作外,
鼠标移动到按钮上方时,将出现一个用于滚动的ChangeEvent:true;鼠标离开按钮时,将出现另一个用于滚动的ChangeEvent:false。您是否正在尝试学习如何使用
JButton
或如何使用ChangeListener
?我问这个问题是因为在我编写Java代码的所有时间里,我从来没有找到向按钮添加ChangeListener
的理由。一个ActionListener
是通常的做法..同意安德鲁的观点。在任何情况下,我都会从Swing教程开始进行解释/示例。在您的情况下,选择按钮时会发生一个事件,取消选择按钮时会发生一个事件。@camickr挑剔:普通的JButton无法选择操作:ChangeEvents的确切数量很难预测:每当buttonModel的属性发生更改时(如启用、按下或鼠标触发时滚动),都会触发ChangeEvents@Jones不明白你的意思…不知道:在用户组件(按钮)上添加封面方法与否是设计决定,swing团队决定不为模型添加封面方法。原因可能是(当然,只是猜测)应用程序代码通常不需要模型属性,因此没有必要使api混乱