按钮单击操作执行时更新标签文本(Java)

时间:2014-04-09 13:45:24

标签: java swing concurrency event-dispatch-thread settext

我在JFRAME上有一个按钮和标签。 单击按钮尝试连接Linux服务器,这需要几秒钟。 我想设置标签文本Connecting ..和Connected.But这不会在按钮操作执行期间设置标签文本Connecting ..任何想法如何做到

private void buttonLConnectActionPerformed(java.awt.event.ActionEvent evt) {
    labelLOut.setText("Connecting");
    String ip="";
    String userid="username";
    String password="password";
Main_Window.LBoxconnect=new SshConnection(ip,userid,password);
    int x=LBoxconnect.checkConnection();
    if(x==1){
    labelLOut.setText("Connected");
    if(dx==1)
        buttonBTTInsert.setEnabled(true);
    else
        lx=1;
    }
    else
    labelLOut.setText("Connection Failed");
}  

1 个答案:

答案 0 :(得分:0)

您应该在后台线程中执行长时间操作,而不是在按钮侦听器中执行,否则您的UI似乎会被冻结。

在您的监听器中,将文本设置为"正在连接"然后启动一个包装你的连接东西的线程。在runnable结束时,长操作完成后再次更新文本。