0

Runtime.getRuntime.execute(); を使用して cmd コマンドを実行するスイング アプリケーションを開発しています。BufferReaderを使用してコマンドの出力を読み取ります。今私が欲しいのは、ダイアログ内のテキストを変更して(JTextPaneを使用して)出力を表示したい、または前提条件をロードするために他のIDEのEclipseを起動しているときに見ることができるように、コマンドの出力でテキストエリアに文字列を追加したいです。

私は JDialog クラスのサブクラスを作成しようとしましたが、それは私が望むことをしていません。

私のコード:

Process p = Runtime.getRuntime().exec(commandToBeExecuted);
            BufferedReader in = new BufferedReader(newInputStreamReader(p.getInputStream()));
            String line = null;
                  MessageDialog myDialog=new MessageDialog(UserInterface.this);

            while ((line = in.readLine()) != null) {
                  System.out.println(line);  
                  myDialog.setText(line);
                  myDialog.setVisible(true);
                  myDialog.setLocationRelativeTo(UserInterface.this);
            }
        } catch (Exception ex) {
            Logger.getLogger(UserInterface.class.getName()).log(Level.SEVERE, null, ex);
            errorGlobal.setText("Some Exception Occured in update "+ex.getMessage());
            System.out.println("Exception occured " + ex.getMessage());
        }   

私がやりたいことをすることは可能ですか?これを達成するための最良の方法は何ですか?

4

1 に答える 1

0

あなたの問題はループにあります。JTextArea.append を使用し、残りをループの外に置きます。

于 2013-07-21T08:23:34.953 に答える