2015-11-27 8 views
0

Я пробовал setDividerPositions с различными аргументами, но любые аргументы, которые я предоставляю, имеют две панели стека внутри разделенной панели одинаковой ширины. Это мой простой код:Позиция разделителя в полноэкранном режиме

SplitPane sp = new SplitPane(); 
final StackPane sp1 = new StackPane(); 
final StackPane sp2 = new StackPane(); 
sp.getItems().addAll(sp1, sp2); 
sp.setDividerPositions(0.3); // tried (0.3, 0.7) and other variants but does not work  
Scene scene = new Scene(sp); 
primaryStage.setFullScreen(true); 
primaryStage.setScene(scene); 
primaryStage.show(); 

Так что, я не знаю, как заставить его работать, так что левая панель будет 30% в ширину, а правая панель будет занимать 70%. Благодаря!

PS. Похоже, что в JavaFX есть ошибка, так как при запуске программы верхняя панель с кнопками закрытия и изменения размера невидима, но становится видимой только тогда, когда я нажимаю Escape. (Но, вероятно, я что-то делаю не так)

ответ

1

Якобиан, похоже, проблема связана с настройкой параметра FullScreen на значение true. Удалите это заявление и повторите попытку. Также дайте вашей сцене начальную высоту и значение ширины. Вы можете сделать это, указав несколько значений по умолчанию, или получив размер экрана пользователей и используя эти настройки. Пользователь может изменить размер приложения, установив минимальную высоту и ширину основного этапа, хотя пользователь все равно сможет перемещать приложение.

 SplitPane sp = new SplitPane(); 
     final StackPane sp1 = new StackPane(); 
     final StackPane sp2 = new StackPane(); 
     sp.getItems().addAll(sp1 , sp2); 
     double height = Screen.getPrimary().getVisualBounds().getHeight(); 
     double width = Screen.getPrimary().getVisualBounds().getWidth(); 
     // Scene scene = new Scene(sp, width, height); 
     Scene scene = new Scene(sp); 
     primaryStage.setScene(scene); 
     primaryStage.setMaximized(true); 
     primaryStage.setMinHeight(height); 
     primaryStage.setMinWidth(width); 
     primaryStage.show(); 
     sp.setDividerPositions(0.3); 
+0

Но что, если это строгое требование о полноэкранном режиме? – Jacobian

+0

Я отредактировал свой ответ для этого требования. Получите размер экрана, установите минимальные размеры сцены, а затем установите максимальное значение. Возможно, это не лучший способ. Это не позволяет изменять размер окна, даже если его можно перемещать. Всегда ли окно должно находиться в полноэкранном режиме или просто для запуска? – JeramyRR

+0

Экран не определен в моем контексте. Можете ли вы, пожалуйста, сообщить, что мне следует импортировать? – Jacobian