Java 保存变量值并发送到外部ActionListener,返回问题!
嗯。这是我的密码。我从textField获取文本到变量baza,我需要将这个值保存在ActionListener之外并返回。但是这里…System.out.println(“Spolja:+baza”);我得到了空值。所以我的返回baza为空。有人能帮我吗Java 保存变量值并发送到外部ActionListener,返回问题!,java,events,action,return,actionlistener,Java,Events,Action,Return,Actionlistener,嗯。这是我的密码。我从textField获取文本到变量baza,我需要将这个值保存在ActionListener之外并返回。但是这里…System.out.println(“Spolja:+baza”);我得到了空值。所以我的返回baza为空。有人能帮我吗 String baza; public String adresa() { unesiB.setText("Potvrdi"); unesiB.setBorder(BorderFactory.createRaisedBevelB
String baza;
public String adresa()
{
unesiB.setText("Potvrdi");
unesiB.setBorder(BorderFactory.createRaisedBevelBorder());
unesiB.setForeground(MyConstants.blueColor);
unesiB.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
baza=CustomerIDFTF.getText();
System.out.println("Unutra: " +baza);
}
});
unesiB.setHorizontalAlignment(SwingConstants.CENTER);
unesiB.setBounds(new Rectangle(150, 90, 130, 30));
panel.add(unesiB);
System.out.println("Spolja: "+baza);
return baza;
}
这是因为在用户执行某些操作之前,不会设置
baza
。实际为变量赋值的唯一位置是匿名
ActionListener
对象的actionPerformed
定义内。当然,在用户执行任何操作之前都不会设置此选项,而在调用此方法的过程中甚至可能不会执行任何操作,除非您遇到一些非常奇怪的并发问题。看起来您正试图将一段设置代码与一段getter代码结合起来。我建议正确地将它们分开——您可能还需要检查代码其余部分的分离级别,因为您可能违反了MVC(特别是交叉污染模型和视图代码)。
不过,为了获得更直接的修复,您可以简单地将
baza
初始化为空白