사용자가 Stage
을 움직이고 닫을 때 화면에 Stage
의 마지막 위치를 유지하려고합니다. Swing에서 동일한 창 인스턴스를 유지하면 이동, 닫기 및 다시 열린 후 동일한 위치에 표시됩니다. 왜 Stage
은 JavaFX의 같은 위치에 항상 표시됩니까? 당신이이 코드를 테스트 대화 상자를 열고 이동을 한 후 닫고 다시 열 경우재개 한 후 스테이지 크기와 위치가 유지되지 않는 이유는 무엇입니까?
public class SwingTest {
public static void main(String[] args) {
JFrame f = new JFrame();
JButton b = new JButton("Show Dialog");
final JDialog d = new JDialog(f);
d.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
d.setSize(300, 300);
b.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
d.setVisible(true);
}
});
JPanel p = new JPanel();
p.add(b);
f.add(p);
f.pack();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setLocationRelativeTo(null);
f.setVisible(true);
}
}
: 스윙 코드의
aboutStage = new Stage();
aboutStage.setTitle("About " + Constants.APP_TITLE);
aboutStage.setResizable(false);
aboutStage.initModality(Modality.APPLICATION_MODAL);
aboutStage.initOwner(primaryStage);
aboutStage.initStyle(StageStyle.UTILITY);
Parent page = (Parent) FXMLLoader.load(
AboutWindowController.class.getResource("about.fxml"));
Scene scene = new Scene(page);
aboutStage.setScene(scene);
miAbout.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent t) {
Stage about = mainClass.getAboutStage();
about.show();
}
});
예 :
은 아래에있는 내 코드 샘플 확인합니다. 다시 열 때 대화 상자가 같은 상태에 있음을 알 수 있습니다.
스윙에서는 동일한 JDialog 인스턴스를 다시 사용합니다. 문을 닫고 다시 열면 상태는 똑같습니다. 즉, 동일한 위치에 있고 볼 때와 같은 크기입니다. – ceklock
지금 내 질문에 스윙 코드를 참조하십시오. – ceklock