我是 JavaFX 的新手,我正在编写一个简单的登录应用程序,我想在我的网络浏览器中启动它。
我怎样才能获得网络浏览器的宽度和高度?是否有一些用于此目的的对象或我希望能够在浏览器大小发生更改时调整应用程序大小的方法。
非常感谢您的回答和帮助。:)
我在Oracle 论坛帖子中回答了与此类似的问题。我将在这里重现答案。
答案是在嵌入式应用程序上设置百分比高度和宽度。
当用户更改浏览器大小时,是否可以动态更改舞台大小?
是的,请参阅 JavaFX 示例包中的Ensemble 示例应用程序 Ensemble 源代码。
部署工具包目前无法为您生成正确的 html 文件(请参阅RT-19247 “javafxpackager -deploy 不接受百分比高度和宽度”)。
但是,在部署工具运行后编辑 html 文件以进行所需的更改是微不足道的,如果您查看 ensemble 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>