JavaFX получает ширину и высоту браузера

Я новичок в JavaFX и пишу простое приложение для входа в систему, которое я хотел бы запустить в своем веб-браузере.

Как я могу получить ширину и высоту веб-браузеров? Есть ли какой-то объект для этой цели или метод, который я хотел бы иметь для изменения размера приложения при изменении размера браузера.

Большое спасибо за ваши ответы и помощь. :)


person Reshi    schedule 05.04.2012    source источник


Ответы (1)


Я ответил на аналогичный вопрос в сообщении на форуме Oracle. Я воспроизведу ответ здесь.

Ответ заключается в том, чтобы установить процентное соотношение высоты и ширины встроенного приложения.

Можно ли динамически изменять размер сцены, когда пользователь изменил размер браузера?

Да, см. пример приложения Ensemble. исходный код ансамбля в пакете примеров JavaFX.

Инструментарий развертывания в настоящее время не может создать для вас правильный HTML-файл (см. RT-19247). «javafxpackager -deploy не принимает высоту и ширину в процентах»).

Однако редактирование html-файла для внесения необходимых изменений после запуска инструмента развертывания является тривиальной задачей, и если вы посмотрите на сценарий сборки ансамбля ant, вы увидите, что изменения также могут быть автоматизированы в ant.

Вот отрывок из примера приложения Ensemble, который демонстрирует, как это сделать.

<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  <title>JavaFX 2.0 - Ensemble</title>
  <SCRIPT src="http://java.com/js/dtjava.js"></SCRIPT>
  <script>
     function javafxEmbed_ensemble() {
       dtjava.embed(
         {
           id : 'ensemble',
           url : 'Ensemble.jnlp',
           placeholder : 'javafx-app-placeholder',
           width : '100%',
           height : '100%',
           jnlp_content : 'PD94b...o8L2pubHA+DQo='
         },
         {
           javafx : '2.0+'
         },
         {}
       );
     }
     <!-- Embed FX application into web page once page is loaded -->
     dtjava.addOnloadCallback(javafxEmbed_ensemble);
  </script>
  <style>
     html, body, #javafx-app-placeholder, #ensemble-app {  
       margin: 0;  
       overflow: hidden;  
       padding: 0; 
       width: 100%;
       height: 100%; 
     }
  </style>
</head>
<body><div id="javafx-app-placeholder"></div></body>
</html>
person jewelsea    schedule 05.04.2012
comment
большое спасибо :) я думал, что решение должно быть в коде Java, но не то, что оно могло быть непосредственно в коде для браузера :) - person Reshi; 06.04.2012