想做一个登录模块,好像QQ那样, 点击"登录"按录, 界面就会显示"正在连接..."并带有左右移动的进度条.我原来的思路是用两个线程来做, 一个线程负责连接服务器, 另一个线程就是带有JProcessBar的JFrame界面, 但是问题是,当连接失败弹出警告后,原来的JFrame界面还在!我的代码如下:
class ConnectingPanel extends javax.swing.JPanel {    /** Creates new form ConnectingPanel */
    public ConnectingPanel() {
        initComponents();
    }    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {        jLabel1 = new javax.swing.JLabel();
        jProgressBar1 = new javax.swing.JProgressBar();        jLabel1.setFont(new java.awt.Font("宋体", 0, 18)); // NOI18N
        jLabel1.setText("正在连接中...");        jProgressBar1.setFocusable(false);
        jProgressBar1.setIndeterminate(true);        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
        this.setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap(111, Short.MAX_VALUE)
                .addComponent(jProgressBar1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(123, 123, 123))
            .addGroup(layout.createSequentialGroup()
                .addGap(127, 127, 127)
                .addComponent(jLabel1)
                .addContainerGap(136, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(89, 89, 89)
                .addComponent(jLabel1)
                .addGap(18, 18, 18)
                .addComponent(jProgressBar1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(124, Short.MAX_VALUE))
        );
    }// </editor-fold>                        
        
}class ConFrame implements Runnable{
    public void run(){
        JPanel con=new ConnectingPanel();       // ConnectingPanel是一个带有JProcessBar的JPanel
        con.setVisible(true);
        JFrame f=new JFrame();
        f.setSize(400, 400);
        f.add(con);
        f.setVisible(true);
        f.setDefaultCloseOperation(f.EXIT_ON_CLOSE);
    }
}public class Con implements Runnable{
    private int port=8888;
    private String host="localhost";
    public void run(){
         Thread p=new Thread(new ConFrame());   
         try{
              p.join();
           Socket socket=new Socket(host,port);
        }
        catch(Exception e){
            p.interrupt();
            JOptionPane.showMessageDialog(null, "不能连接到指定服务器"+"!", "输入不合法", JOptionPane.WARNING_MESSAGE);
        }
    }
    public static void main(String[] args){
        Thread c=new Thread(new Con());
        c.start();
    }
}我应该怎样改才能实现loading界面? 谢谢!