按钮释放后执行操作

时间:2012-05-10 15:04:07

标签: java swing jbutton background-process swingworker

我有以下问题。我有一个带有按钮的小表单(我们在这里谈论JAVA),它通过与服务器的套接字连接发送表单中的数据。现在,当我按下按钮时,它正在进行单一连接,但同时,如果你找到我,按钮仍保持“按下”状态。动作之后,由actionlistener激活,已经完成(连接,发送数据,关闭连接)按钮被释放。

现在我的问题是,是否有一个简单的解决方法,如果是这样(或不是),我该如何解决这个问题?

提前致谢。

submit.addActionListener(this);

这是其中的一部分,但我希望在文中明确说明。

public void actionPerformed(ActionEvent ae) {
        if (ae.getSource() == submit) {
            boodschap = testtext.getText();
//            System.out.println(boodschap);
            try {
                try {
                    UserConnection connect = new UserConnection(boodschap);
                } catch (SQLException ex) {
                    Logger.getLogger(UserAction.class.getName()).log(Level.SEVERE, null, ex);
                }
            } catch (ClassNotFoundException ex) {
                Logger.getLogger(UserAction.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
}

(哦,这个代码就像一个魅力。代码没有任何问题,它只是显示给你一个我的意思的指示。)

1 个答案:

答案 0 :(得分:3)

问题是您正在UI线程上执行长时间运行的操作。如果您将代码放入SwingWorker或甚至放入Runnable并在新线程中运行它应该解决您的问题