私は非常に初心者で、通常はJavaコンソールウィンドウにアイテムを出力するプログラムを持っています。このプログラムを、ユーザーが操作できるウィンドウにしたいと思います。ダイアログボックスとパネルに頼らなかった理由は、このプログラムがコンソールウィンドウに複数の印刷を必要とするためです。従来のダイアログボックスは、ボックスにすでに印刷されているデータを継続的に更新したり、合成したりすることはありません。Javaコンソールウィンドウを模倣するプログラムを作成することで、これを行う別の方法があることに気付きました。私は初心者なので、このサイトのJavaコンソールリダイレクトの質問と回答はすべて私の頭を悩ませています。誰か助けてくれませんか?
2 に答える
エディター ペインとテキスト ペインの使用方法が役に立ち、いくつかのアイデアが得られるかもしれません。
簡単に言うと、テキスト ボックスの内容を更新するたびに、setText 関数を再度呼び出します。コンテンツに「追加」機能はありません。毎回コンテンツ全体を提供する必要があります。メッセージがスクロールし続けるコンソール ウィンドウを模倣するものが必要な場合、最も簡単な方法は、コンテンツ全体を StringBuilder に保持することです。新しいテキストを取得するたびに、StringBuilder に追加してから、setText(myStringBuilder.toString) を追加します。
mybox.setText(mybox.getText()+"new contents") と書くことができると思います。それは少し非効率的ですが、おそらく大したことではありません。
あなたが何をしようとしているのか正確にはわかりませんが、コンソールの出力をテキスト ボックスにリダイレクトしようとすることは、それだけの価値があるよりも面倒なことのように思えます。データをテキスト ボックスに入力するだけです。別の場所に書き込むのではなく、元に戻して、必要な場所に配置してください。コンソールに何千行ものコードを書き込んでいて、それをテキスト ボックスにしたい場合、そのすべてのコードを変更する必要がないことに価値があるかもしれません。しかし、コンソール アプリの構造は GUI アプリの構造とは大きく異なるため、おそらく出力ステートメントを変更するだけで、手直しが必要になることはほとんどありません。