我是Swing编码的新手。我有3个文本框和一个按钮。 单击按钮后,我要禁用/禁用三个文本框。 我在按钮actionPerformed函数中添加了以下代码。它不会禁用/使其不可编辑。
myTextField.setEditable(false);
myTextField.setEnabled(false);
mytask() //it taskes almost 30 minutes
有人可以告诉我我在做什么错吗?
答案 0 :(得分:0)
mytask()//完成任务将近30分钟
您要长期运行的任务应在单独的线程上执行。如果在ActionListener中调用长时间运行的任务,则GUI将冻结,直到任务完成执行。
阅读Concurrency上Swing教程中的部分,以获取更多信息。您可能要使用SwingWorker
来完成任务。
我在按钮actionPerformed函数中添加了以下代码。它不会禁用/使其不可编辑
如果您已经在单独的线程中调用了该任务,则意味着您没有对添加框架的文本字段的引用。也许您创建了两个实例。