我已经为一个我的应用程序创建了此GUI。在重写方法actionPerformed
我必须为字符串command
插入final
,因为此变量用于内部类。有一种方法可以避免这个问题?避免使用最终的字符串变量
@Override
public void actionPerformed(ActionEvent e)
{
final String command = e.getActionCommand();
if(command.equals("add"))
{
new Thread(new Runnable(){
@Override
public void run()
{
// ... code skipped ... //
ous.writeObject(command);
// ... code skipped ... //
}
}).start();
}
else if(command.equals("remove"))
{
new Thread(new Runnable(){
@Override
public void run()
{
// ... code skipped ... //
ous.writeObject(command);
// ... code skipped ... //
}
}).start();
}
}
我试图解决在代码开头声明
String command = null;
问题。
会有什么问题?必须输入“最终”? :)你能否详细说明一下? – 2012-01-14 17:50:02
您的代码未确认[SSCCE](http://sscce.org/)。 – Lion 2012-01-14 17:55:51
您不应该为您正在尝试的操作创建一个新的'Thread'实例,而是使用'SwingWorker'(或在EDT上调用您的'emptyTextField')。此外,读取线程中文本字段的值也应在EDT上进行。最后,关闭你的流应该发生在'finally'块 – Robin 2012-01-14 18:08:29