我想在JavaFX中从start开始在TextArea中设置文本,我在构造函数中使用此代码:
public class Myclass implements Initializable{
@FXML TextArea txta;
@FXML Button btn;
String msg;
Myclass(){
msg="Hello World";
txta.setText(msg);//This line is my setter.
}
@Override
public void initialize(URL location, ResourceBundle resources) {
btn.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
msg=msg+"\nHallo Again!!");
txta.setText(msg);
}
});
}
然后FXML没有显示,但是当我对设置行进行评论时,FXML正常显示。 请帮忙,我该如何解决这个问题?
答案 0 :(得分:1)
您的课程是一个控制器,它不需要构造函数。所有初始设置都可以在initialize
方法中完成。您可以找到here基础教程。
您的文字区txta
将被正确初始化(这就是为什么它有@FXML
注释),所以这就足够了:
public class Myclass implements Initializable{
@FXML private TextArea txta;
@FXML private Button btn;
private String msg;
@Override
public void initialize(URL url, ResourceBundle rb) {
msg="Hello World";
txta.setText(msg);
btn.setOnAction(e->{
msg=msg+"\nHallo Again!!";
txta.setText(msg);
});
}
}