如何在构造函数中设置JavaFX中TextArea的文本?

时间:2014-11-05 08:17:36

标签: java constructor javafx jtextarea fxmlloader

我想在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正常显示。 请帮忙,我该如何解决这个问题?

1 个答案:

答案 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);
        });
    }
}