Работа с конструктором сцен. У меня есть 2 этапа, каждый с контроллером:stage1Controller
,stage2Controller
.
Stage1Controller:
public class Stage1Controller {
@FXML
private MenuItem translate;
@FXML
private Menu file;
@FXML
private Menu edit;
@FXML
private Menu help;
@FXML
private void handleTranslate (ActionEvent event){
translateFirstStage();
//HOW TO ACCESS THE stage2Controller setLabel()??
}
private void translateFirstStage(){
file.setText("Fichier");
edit.setText("Modifier");
help.setText("Aide");
}
}
Контроллер Stage2:
public class Stage2Controller {
@FXML
private Label lb;
private void setLabel(String string){
lb.setText("string");
}
}
Вот как оба файла fxml загружаются в класс Main.java с использованием двух методов
(вызывается в методе Start(Stage primaryStage)
):
public void firstStage() {
try {
// Load root layout from fxml file.
FXMLLoader loader = new FXMLLoader();
loader.setLocation(Main.class.getResource("view/stage1.fxml"));
rootLayout = (BorderPane) loader.load();
// Show the scene containing the root layout.
Scene scene = new Scene(rootLayout);
primaryStage.setScene(scene);
primaryStage.show();
} catch (IOException e) {
e.printStackTrace();
}
}
public void secondStage() {
try {
// Load root layout from fxml file.
FXMLLoader loader = new FXMLLoader();
loader.setLocation(Main.class.getResource("view/stage2.fxml"));
XD = (AnchorPane) loader.load();
// Show the scene containing the root layout.
Scene scene = new Scene(XD);
Stage stage = new Stage();
stage.setScene(scene);
stage.show();
} catch (IOException e) {
e.printStackTrace();
}
}
- Метод
handleTranslate(ActionEvent event)
используется как методOnAction
дляMenuItem translate
на первом этапе, он транслирует представление на обоих этапах.
Как поместить setLabel
в метод handleTranslate
? Спасибо
Stage2Controller
в вашемStage1Controller
.) - person James_D   schedule 15.04.2015