2016-07-28 4 views
2

私はコントローラClassを拡張スレッド、JavaFXシーンビルダを使用して、Run()メソッドからTextFieldのテキストを設定する方法は?

と私のRun()メソッドは、これを行うだけです。

private int con = 1; 

public void Run(){ 
    while(true){ 
     try{ 
      con++; 
      print(); 
     catch(exception e){ 
      system.out.prinln(e); 
     } 
    } 
} 

、ここが問題だ、私は、TextFieldの「CON」を表示するには、印刷()メソッドが必要になります。

私はfrmMain.fxmlクラスとfrmMainController.javaクラスを持っています。

私のインターフェイスからボタンをクリックすると、「con」が表示されます。 (evt onClickedMouse)。

private TextField tf; 
    private FrmMainController fr; 

    public void show(){ 
     tf.setText(String.valueOf(con)); 
     fr.setTxtThread1(tf); 
    } 

私は誰かが私はこの乗り越えるために役立つ感謝:

は、私はこれを持っています。

+0

ですから、 'ボタンを作成する必要があります'コンポーネントを最初に使用します。ここで同じ問題http://stackoverflow.com/questions/26524583/the-count-number-of-pressed-button – TomN

+0

.fxmlファイルを表示する.TextFieldオブジェクトは、使用する前に初期化する必要があります。そうでない場合はnullです。 – GOXR3PLUS

答えて

0

他のスレッドでJavaFXコンポーネントを変更すると、問題が発生する可能性があります。

あなたのrunメソッドでは、識別子(FX:id)を追加するにはFXMLファイルでPlatform.runLater(...);

を使用してそれを行うことができますが、あなたのTextField のために、あなたの制御されたクラスは、その意志の方法を持っているInitializableインタフェースを実装する必要がありますすべてのfxml要素が初期化されたときに呼び出されます。

すぐに、Runメソッドに電話して、上記のようにTextFieldを更新することができます。 SceneBuilderにおける基本的

のTextFieldで基本的なレイアウトを作成し、id.Thenを固定しているボタンはInitializableインタフェースのメソッド内のボタンにactionListenerを追加します。

button.setOnAction(a->{···}); 
+0

私の友人にありがとう。私は学ぶべきことがたくさんある。 私はあなたが私に言っていることをすべてやろうとします。 ありがとうございます。 – Raka26

+0

@Chopi私はコンピュータに入るとすぐにコードを追加します。なぜなら、私は電話からほとんど応答しているからです。 – GOXR3PLUS

+0

ありがとう、申し訳ありません、今私は答えます。 Im learnign Web Developersと私は時間がありませんxxx – Raka26

関連する問題