JavaFX获取浏览器的宽度和高度

时间:2012-04-05 10:02:20

标签: java layout javafx

我是JavaFX的新手,我正在编写一个简单的登录应用程序,我想在我的Web浏览器中启动它。

我怎样才能获得网页浏览器的宽度和高度?是否有一些用于此目的的对象或方法我希望能够在浏览器的大小更改时调整应用程序的大小。

非常感谢您的回答和帮助。 :)

1 个答案:

答案 0 :(得分:2)

我在Oracle forum post中回答了类似的问题。我会在这里重现答案。

答案是在嵌入式应用程序上设置百分比高度和宽度。

  

当用户更改浏览器的大小时,是否可以动态更改舞台大小?

是的,请参阅Ensemble sample application JavaFX示例包中的Ensemble source code

部署工具包目前无法为您生成正确的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>