みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Ne

NetBeansを使用し、JAVAで標準出力される文字列をテキストエリアに表示するプログラムを作成しています。
テキストエリア等部品は、NetBeansのデザインで配置しています。

プログラムを実行すると、テキストエリアがグレーアウトし、入力すらできなかったり、標準出力で出力されるはずの文字列がテキストエリアに出力されなかったりします。
(コンソール上では、出力されている。appendが動作していない模様)
何度か、プログラムの再起動を行うと正常に動作するので、プログラミング的には間違っていないような気がします。

同じような事象に陥った方、若しくは対処方法をご存知の方、ご教示願います。

投稿日時 - 2009-07-13 16:29:37

QNo.5122259

困ってます

質問者が選んだベストアンサー

実物がないので推測の範囲を出ないのだけど

単にプログラム的に間違っているんだと思うわ。

処理の順番が間違っているんじゃないかしら?
上手くいっているように見えるときは
たまたまその処理の順番が噛みあっているときなんじゃないかしら?

投稿日時 - 2009-07-15 17:21:11

補足

ご回答ありがとうございます。
おっしゃる通り、処理タイミングがおかしいのかもしれません。
以下のようなプログラムを作成したのですが、画面表示よりも先にテキストエリアに対して、appendが動作していることになるのですかね?
根本的に作り方がおかしいのかもしれません。
画面表示について、他に良い方法があればご教示願います。
再度の質問で申し訳ありませんが、宜しくお願いします。

public class FrameView extends javax.swing.JFrame

//各部品の宣言
private javax.swing.JTextArea jTextArea1;
(以下省略)

public FrameView() {

//画面の初期化
initComponents();

}
//画面の初期化
private void initComponents(){

//テキストエリア、ボタン等各部品の初期化
jTextArea1 = new javax.swing.JTextArea();
(以下省略)

}


public static void main(String[] args) {

//自身のインスタンス生成
FrameView fv = new FrameView();

//画面の表示
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new FrameView().setVisible(true);

}
});

fv.startClient();

}

private void startClient(){

jTextArea1.append("テキストエリアに文字を出力したい");
System.out.println("コンソールには表示される");

}

}

投稿日時 - 2009-07-17 19:08:57

お礼

自己解決できました。
おかしな質問をしてしまいまして、すみませんでした。
そして、ありがとうございました。

投稿日時 - 2009-07-22 15:05:38

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問