2017-10-14 10 views
2

プログラムの現在の状態に関するユーザー情報を与えるグラフィックコンソールを作成したいと思います。私はそれをJTextAreaのために使用する予定ですが、私はappend()メソッドに問題があります。メインクラスで使用しても、空のJTextAreaが残っています。私は間違って何をしていますか?ここでJTextArea要素でAppend()が動作しない

は、コンソールのGUIのコードです:

package com.meh; 

import javax.swing.*; 

public class Controller extends JFrame { 
    public JPanel ControlPanel; 
    public JTextArea Log; 

    static void setView() { 
     JFrame frame = new JFrame("Controller"); 
     frame.setContentPane(new Controller().ControlPanel); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.pack(); 
     frame.setVisible(true); 
    } 
} 

そして、これはメインクラスのコードです:あなたはjTextArea appendメソッドを調べる場合

package com.meh; 

public class Main { 
    public static void main(String[] args) { 
    Controller controller = new Controller(); 
     controller.setView(); 
     controller.Log.append("Hello"); 
    } 
} 

答えて

2

、あなたはそれが表示されます。

Appends the given text to the end of the document 

ただし、Stringがempの場合は何もしません。 tyまたはnullです。

あなたのケースではsetText()を使用できます。

+0

Hmmm ... append()をsetText()に変更しましたが、まだ同じ問題があります。 – Halep

+0

私の電話はありますが、jframeにテキスト領域を追加していない可能性があります。 – notyou

+0

またはおそらくjTextAreaを初期化してください。 – notyou

1

getText()に電話すると新しい文字列値が返されますか?その場合は、テキストを変更した後にrepaint()および/またはrevalidate()controllerおよび/またはcontroller.Logに電話する必要があります。

1

「ControlPanel」を初期化することはありません。それは常にnullになるため、何もできません。

関連する問題