我正在编写一个简单的程序,它使用3 JTextField
和2个按钮从用户获取3个值,一个用于Chart,另一个用于Graph。
单击任何一个按钮,从接口获取的值,应该返回给调用函数是必需的。
(即我从控制器调用View并从视图中获取用户的值并期望在控制器中返回)
为此我在里面使用了textfield1.getText()
函数:
Button1.addActionListener(new ActionListener() {
//Overriding function over here for getting the data
});
事件。最后,我将重新调整用户的ArrayList
值。
然而问题是,一旦程序开始运行,它就不会等待按钮点击,而是直接将ArrayList
返回给控制器并使用默认值。
感谢您的任何快速帮助..
我对听众很陌生,这可能就是问题的原因..
答案 0 :(得分:3)
这个问题缺少一些能够真正指出问题的代码,但我认为你认为这个电话是
do A
button.addActionListener( new ActionListener(){
public void actionPerformed( ActionEvent e ){
do C
}
} );
do B
将停止代码执行,直到按下按钮。这是不正确的。
在上面的代码段中,它会执行A
,然后将侦听器附加到按钮,并立即继续B
。只有在按下按钮时才会触发侦听器代码。因此C
仅在按下按钮时执行,该按钮在B
之后执行。
Oracle网站上有一个关于ActionListener
s的教程。如果您不熟悉所声称的侦听器概念,那么阅读Observer design pattern可能也会有所帮助,这是您在附加侦听器时使用的设计模式。