- ベストアンサー
実行結果をSwingで表示
http://godwood.allnet.ne.jp/vioret/j2seobex.htmlでDLできるOBEXライブラリに付属しているコマンドベースでファイルを転送することができるサンプルプログラム(obex.java)の実行結果などをSwing上(JTextAreaなどに)で表示させたいと考えているのですが、そのような事は可能でしょうか?? ご教授お願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
#2です。 >また「throw new OBEXCommandException("コマンドを指定してください。");」 >という風にSystem.out.println以外で表示させている箇所があった throw new OBEXCommandException(); というのは 別にここで「表示(System.out.println)」しているわけではないのでは? 「表示」しているのは、この例外をキャッチするcatch節の中で、では? ソースコードを見直してみてください。 >exeファイルやbatファイルがないのですが バッチファイルは、自分でつくります。 http://www.cdwavmp3.com/bangai/batfile.html 中に書く「コマンド」は自由。 ちなみに、次のようなコマンド 「java obex get file.txt」 においては、コマンド先頭に書かれている"java"がexe。(java.exe) --- ところで前回の2つの方法に付け足して、方法3。 方法3. Runtime#exec()は使わないが、「標準出力のリダイレクト」は利用 (リダイレクトとは http://e-words.jp/w/E383AAE38380E382A4E383ACE382AFE38388.html Javaのリダイレクト http://www.vc-net.ne.jp/~ytp/bbs/java/bbs6698.html) --- 方法3の概要 (1)あらかじめSystem.out.println()の出力先を、指定のファイルに変更(リダイレクト)。 (2)自作アプリケーション内で、ツールobexの望みのAPIを直接に呼ぶ。(※よってexec()は不要) (3)この結果、ツールの実行結果は「ファイル」に保存。 (4)これをTextAreaに写す。
その他の回答 (1)
- kacchann
- ベストアンサー率58% (347/594)
ある「コマンドラインベースのツール」がある。 で、このツールを実行したときの「(標準出力への)出力」を 別の自作アプリケーションに取り込みたい。 どうすればよいか。 僕が思いつくのは2つ(経験が浅いので…)。 --- (1)~いちばん簡単な方法~ その「コマンドラインベースのツール」のソースコードを 持っているというのであれば、 そのソースコード内の 「標準出力へ出力」している箇所を 「TextAreaへの出力」に書き換える。 System.out.println(str) ↓ textArea.append(str+"\n"); など。 初級レベルであり悩みようがなく、正統な(?)やり方なのでオススメ。 (単に「ソースコードを、必要に応じて適切に書き換えなさい」ということ) --- (2)Runtime#exec() http://oshiete1.goo.ne.jp/kotaeru.php3?q=1047077 http://www.gimlay.org/~javafaq/S103.html わからない場合は(1)の方法で
お礼
丁寧なご説明をありがとうございます。 (1)の方法は私も考えたのですが、プログラム自体がとても長く、また「throw new OBEXCommandException("コマンドを指定してください。");」という風にSystem.out.println以外で表示させている箇所があったため、うまく出来ませんでした。。。 (2)の方法は、exeファイルやbatファイルがないのですがそのような場合にはこの方法は活用できないのでしょうか? 質問ばかりで本当に申し訳ないです。
お礼
本当に丁寧なご説明をありがとうございます。 とりあえず、全ての方法を試してみます! 本当にありがとうございました。