2012-03-20 11 views
1

netbeansのJava swing GUIテストエリアで標準のJavaプログラミング(Main clas)でコンパイルした計算結果を表示する必要がありますが、それに関する問題。私は、問題は私の文字列を印刷するためであるGUIクラスでは使用できません賭け、ここではコードの私の部分は、スイング中Java GUI Netbeans、別のパッケージにあるクラスのテキストエリアに出力を表示

private void predictActionPerformed(java.awt.event.ActionEvent evt) {           

     TextArea1.setText(Engine.Print.printresult(toarray)); 
     //JOptionPane.showMessageDialog(null,Engine.Print.printresult(toarray)); 
    //  TextArea1.setText(Retrieving.main(args)); 
    } 

だと、ここで、パッケージエンジン、クラスの印刷、法のprintresultのコードですが、文字列[] printresultは別のクラスから渡され、GUIなしで直接実行されます:

public static void printresult(String[]toarray){ 
    for(int a=0; a<toarray.length;a++){ 
    System.out.println(toarray[a]); 
    } 

本当に助けが必要です。ありがとう

+0

コンソールプログラムとSwingプログラムを混在させてもよろしいですか?なぜあなたはこれをしたいのですか?おそらく、おそらくあなたは私たちにエンジンパッケージから間違ったメソッドを見せているでしょう。なぜなら、おそらくデバッグの目的を除いて、GUIプログラム内に 'System.out.println(...)'の場所がないからです。 –

+0

もちろん、ここで私の答えで示したように、標準OutputStreamをJTextAreaにリダイレクトする必要がある場合は例外です:[JFrame/JPanelのコンソールJavaを視覚化する方法](http://stackoverflow.com/ A/9776819/522444)、これは通常、他のより簡単な方法で最もよく解決される問題のためにひどいトラブルです。 –

+0

'JUnit'' @ Test'の結果をNetBeansのテスト結果ウィンドウに表示したいのですか? – trashgod

答えて

0

あなたの状態:

ActualyこのプログラムはGUIを使用して可視化する必要があるため、私はスイングテキスト領域に私のコンソールの私の計算の値を表示する必要があり、私はそれだけでコピーすることは不可能だと思います代わりにいくつかのクラスが含まれているので、すべての私のコードは、GUIには、GUIのスイングテキストエリアに結果を送信する必要があるので、私は何をすべきかわからない。この方法は動作していないので誰も私にそれを行う方法を教えてもらえますか?

まず、計算コードを書き直す必要があります。あなたは私たちにこのコードを見せないので、何をやっているのか、間違っているのかを推測することは不可能になりますが、計算をしてコンソールに出力すると思われます。私はあなたがあなたの非GUIの計算コードのために行うことをお勧めします何
:適切なOOPSクラスが

  • それはプライベートインスタンスを含める必要があり、それのでようにここでも、何よりもまず

    • 、あなたの計算コードを再書き込みフィールド、少なくとも1つのコンストラクタ、およびこのクラスに情報を渡すためのパブリックメソッド、およびクラスから結果を抽出するメソッドですが、いくつかのメソッドは両方を行います。このコードは、最終的な「生産」コードで行が削除されるという考えで、デバッグ目的でない限り、printlnをコンソールに関連付けるものではありません。
    • 上記の1つまたは複数のクラスは、GUIの背後にある「モデル」または頭脳になります。
    • これはGUIに関する知識がなく(GUIには「不可知論的」であるべき)、十分に柔軟に書かれているため、コンソールプログラムやその他のユーザーインターフェイスでSwing GUIで使用できるのことを考える。
    • あなたが気に入らなければならない場合は、モデルにPropertyChangeSupportオブジェクトを与え、GUIが変更をモデルに「リッスン」してこれらの変更に応答できるようにします。
    私はあなたのGUIのdislayコードのために行うことをお勧めします何

    • これはあなたの「ビュー」モデルになり、あまりにもオブジェクト指向プログラミングの原則に準拠するように書かなければなりません。
    • 上記で説明したモデルのインスタンスフィールドを表示します。言い換えれば、あなたのビューはその中にモデルオブジェクトを保持します。
    • ビューコントローラまたはリスナーがモデルとやり取りするようにします。例えば、JButtonが押された場合、ActionListenerに(適切なメソッドを呼び出すことによって)モデルに通知させ、ボタンが押されたことを確認します。モデルがJTextFieldsに保持されているテキストなど、GUIからの情報を必要とする場合、ActionListenerはこのテキストを抽出し、メソッドパラメータを使用してモデルに情報を渡します。
    • おそらくPropertyChangeListenerを使用して、モデルの「リスナー」としてGUIを登録し、モデル状態の変更に対応することができます。

    これらの提案は非常にジェネリックそのようにあなたや私が希望どおりにとして有用ではないかもしれないが、これは私達があなたの問題について知っている限られた情報与えられた必要性である。ですより具体的なヘルプについては、あなたの問題とコードに関するより具体的で詳細な情報をお知らせください。

  • 関連する問題