Javafx 는 fxml 방식 으로 대화 상 자 를 추가 합 니 다.
2047 단어 JavaFx
public class Main extends Application {
@Override
public void start(Stage primaryStage) {
try {
/*Parent root = FXMLLoader.load(getClass().getResource("study.fxml"));
Scene scene = new Scene(root, 1000, 600);
primaryStage.initStyle(StageStyle.DECORATED);
primaryStage.setScene(scene);
primaryStage.setTitle("Stony Brook Health");
primaryStage.show(); */
FXMLLoader loader = new FXMLLoader();
loader.setLocation(getClass().getResource("study.fxml"));
loader.load();
Parent root = loader.getRoot();
// , Stage
Controller c =(Controller)loader.getController();
c.setStage(primaryStage);
Scene scene = new Scene(root,1000,600);
primaryStage.setScene(scene);
primaryStage.show();
} catch(Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
launch(args);
}
}
이 main 함수 의 코드 는 Stage 대상 을 가 져 와 Controller 에 전달 하 는 데 중점 을 둡 니 다.대화 상자 에 대화 상 자 를 다시 만 들 려 면 계속 끼 워 넣 으 십시오.
public Stage primaryStage;// Stage
{
FXMLLoader loader = new FXMLLoader();
//Dialog.fxml fxml
loader.setLocation(getClass().getResource("Dialog.fxml"));
try {
loader.load();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
Parent root = loader.getRoot();
Stage modal_dialog = new Stage(StageStyle.DECORATED);
modal_dialog.initModality(Modality.WINDOW_MODAL);
// 。
modal_dialog.initOwner(primaryStage);
Scene scene = new Scene(root);
modal_dialog.setScene(scene);
modal_dialog.show();
}
// primaryStage
public void setStage(Stage temp)
{
primaryStage = temp;
}