我需要在第二个Pane
中更改操作上的文字。为此,我尝试使用:
try{
HouseDA.setDefault(house);
FXMLLoader loader = new FXMLLoader(); //Loads an object hierarchy from an XML document.
loader.setLocation(MainApp.class.getResource("view/MainSideMenu.fxml")); // which document
loader.load();
MainSideMenuController controller = loader.<MainSideMenuController>getController();
controller.refreshHouseInfo();
}catch(Exception e){}
代码完美无缺,但文字没有变化。调试后,它看起来像是创建了我Pane
的另一个实例并更改了那里的文本。如何访问现有窗格的控制器以便我可以更改文本?
答案 0 :(得分:0)
我不确定我是不是不喜欢你的问题,但你可以试试这个。
然后,您可以从其他窗格更改myTextArea中的所有内容。
yourButtonID.setOnAction(event -> {
yourTextAreaID.setText("something");
});
如果用户单击该按钮,则在textArea的第二个窗格中,文本将设置为“something”。 (如果只想显示一个窗格,可以使用setVisible(boolValue)方法管理它)
mySecondPane.setVisible(false);
答案 1 :(得分:0)
我也在搜索相同的内容,但找不到。但是在将Parent节点转换为Scene之后,我们可以从Scene获取FxmlLoader。这样就可以得到控制器。
input {
rabbitmq {
host => "rabbitmq:5672"
user => "user"
password => "password"
queue => "queue "
durable => true
prefetch_count => 1
threads => 3
ack => true
metadata_enabled => true
}
}
filter {
if [@metadata][rabbitmq_properties][timestamp] {
date {
match => ["[@metadata][rabbitmq_properties][timestamp]", "UNIX"]
}
}
}
output {
elasticsearch {
hosts => ['http://elasticsearch:9200']
index => "%{[@metadata][rabbitmq_properties][IndexName]}_%{+YYYY.MM.dd}"
}
stdout {codec => rubydebug}
}
希望有帮助