Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用JavaFX场景生成器从Run()方法在TextField上设置文本?_Java_Multithreading_Textfield - Fatal编程技术网

如何使用JavaFX场景生成器从Run()方法在TextField上设置文本?

如何使用JavaFX场景生成器从Run()方法在TextField上设置文本?,java,multithreading,textfield,Java,Multithreading,Textfield,我有一个扩展线程的控制器类 我的Run()方法就是这样 private int con = 1; public void Run(){ while(true){ try{ con++; print(); catch(exception e){ system.out.prinln(e); } } } 问题是,我需要一个print()方法,在文本字段上显示“con” 我有一个frmMain

我有一个扩展线程的控制器类

我的Run()方法就是这样

private int con = 1;

public void Run(){
   while(true){
      try{
          con++;
          print();
      catch(exception e){
          system.out.prinln(e);
      }
   }
}
问题是,我需要一个print()方法,在文本字段上显示“con”

我有一个frmMain.fxml和frmMain.java类

如何在界面中单击按钮时显示我的“con”。(evt onClickedMouse)

我有这个:

  private TextField tf;
    private FrmMainController fr;

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

如果有人能帮我解决这个问题,我将不胜感激。

在其他线程中修改JavaFX组件可能会导致问题

尽管在run方法中,您可以使用
Platform.runLater(…)

在fxml文件中为
TextField
然后,您的受控类必须实现
Initializable
接口,该接口有一个方法,当您的所有fxml元素都已初始化时将调用该方法

一旦发生这种情况,您可以调用
Run
方法,并如上所述更新
TextField

基本上,在SceneBuilder中创建一个基本布局,其中包含一个文本字段和一个具有固定id的按钮。然后在
Initializable
界面方法内的按钮中添加一个
actionListener

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

因此,您必须首先创建
按钮
组件。这里也有同样的问题显示.fxml文件..TextField对象在使用前必须初始化,否则为空。谢谢我的朋友。我有很多东西要学。我会尽力做到你对我说的一切。非常感谢。@Chopi我一到电脑就会添加代码,因为我大部分时间都是通过电话接听的。谢谢,对不起,我现在接听了。我在学习网络开发者,我没有时间。x@ChopiHTML、CSS3、Javascipt、Node.js、W3.css……;)