JavaFX文本赢得';t出现在文本字段或文本区域中
我有一个程序,它使用一个表单来添加和显示一个对象。我可以使用表单添加一个对象,但是当我尝试在此之后在表单中显示相同的对象时,将不会显示任何文本。该对象确实添加正确,我可以打印出所有元素,因此没有任何内容是JavaFX文本赢得';t出现在文本字段或文本区域中,java,javafx,textarea,textfield,Java,Javafx,Textarea,Textfield,我有一个程序,它使用一个表单来添加和显示一个对象。我可以使用表单添加一个对象,但是当我尝试在此之后在表单中显示相同的对象时,将不会显示任何文本。该对象确实添加正确,我可以打印出所有元素,因此没有任何内容是null。我想是我的.setText()行出错了。我创建了一个较小版本的程序,该程序仅尝试显示文本: public class TestApp extends Application { private Stage primaryStage; @FXML public Tex
null
。我想是我的.setText()
行出错了。我创建了一个较小版本的程序,该程序仅尝试显示文本:
public class TestApp extends Application {
private Stage primaryStage;
@FXML public TextField txtField;
@FXML public TextArea txtArea;
@FXML public Button btnTest;
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) {
this.primaryStage = primaryStage;
this.primaryStage.setTitle("Change Solutions");
showWelcome();
}
public void showWelcome(){
try{
AnchorPane page = FXMLLoader.load(TestApp.class.getResource("testFXML.fxml"));
page.setStyle("-fx-background: #FFFFFF;");
Scene scene = new Scene(page);
primaryStage.setScene(scene);
primaryStage.setTitle("Welcome to Change Solutions");
primaryStage.show();
}catch (IOException i)
{
Logger.getLogger(TestApp.class.getName()).log(Level.SEVERE, null, i);
}
}
public void addText(){
txtArea.setText("test");
txtField.setText("test");
showWelcome();
}
public void handleButton(ActionEvent actionEvent) {
addText();
}
}
FXML:
代码,无论是在这里还是在实际的程序中,编译时都没有错误。
我以前见过这个问题的版本,但没有一个解决方案适合我,所以我想我应该开始一个新的线程。在分配文本之前,您需要先加载fxml。否则,您的程序将尝试不为任何内容分配文本。@Eric FXML将加载到
showWelcome()
,它是从start()
调用的。很抱歉,没有捕捉到这一点。你为什么要装两次?一次我启动,一次在addText?您的addText()
方法调用showWelcome()
,然后再次加载FXML并(尝试)将重新加载的FXML放入窗口。新加载的FXML在文本字段或文本区域中将没有任何文本。。。但是,这部分将不起作用,因为primaryStage
在控制器中将为空。当我试着运行它时,我实际上在两个控件中都看到了文本“test”,然后我得到了一个空指针异常。使用应用程序
类作为控制器类基本上是一个错误。看见