2011-09-10 15 views
1

私はネットワークプロジェクトをやっています。私はJava Project Consoleアプリケーションの下でコードをコンパイルして動作します。しかし、GUIを作成し、ボタンを押したときに実行するコードを割り当てると、ボタンをクリックするとそのコードが停止します。 Java JButtonとスイングの問題

この

は、ソースコードである:

@Action 
public void EstablishConnection() { 
    serverAddress = jTextFieldServerAddress.getText(); 
    serverPort = Integer.parseInt(jTextFieldPort.getText()); 
    serverUName = jTextFieldUName.getText(); 
    serverUPwd = jTextFieldUPwd.getText(); 

    try { 
     client = new FTPClient(); 

     client.connect(serverAddress, serverPort); 
     boolean login = client.login(serverUName, serverUPwd); 

     if(login) { 
      System.out.println("Successfully logged in\n"); 
     } 
     else { 
      System.out.println("Unable to login\n"); 
     } 
    } 
    catch(Exception ex) { 
     System.out.println("Exception Raised: " + ex); 
    } 
} 

ボタンはスイングアプリに押されたときにアクションが呼び出されます。それは私のために働いていません。しかし、コンソールアプリでは非常に高速に動作しています。

+3

すぐに役立つように、[SSCCE](http://pscode.org/sscce.html)を投稿してください。 –

+0

Java命名規則を学び、それらに固執してください – kleopatra

答えて

1

私は、リモートサーバなどにアクセスするなどの外部要因に依存するコードを実行することをお勧めします。無限のプログレスバーと

表示MessageDialog:あなたは、あなたの接続が終了するかどうかを知っているでもない、またそれは、ユーザーが接続スレッドを殺すことを可能にするボタンを追加するかどう

connProgressBar.setIndeterminate(true);

、彼女がそれのように感じるたびに。

ファイルをアップロードしたりダウンロードしたりするには、おそらくftpサーバーに接続しているため、接続が確立された後、新しいスレッドで実行されるファイルのダウンロード率を示す確定プログレスバーを使用します。

3

「ハング」という言葉が表示されているときはいつも、ハングするコードを実行するために別のスレッドを使用する必要があると仮定します。ソリューションについては、Concurrency in Swingを参照してください。

関連する問題