我们有一个小程序用于浏览器中运行应用程序,但我们也提供了JNLP Web启动选项。当Web启动窗口启动时,它是不可调整大小或最大化的,我们希望能够实现这一点。
我最初认为这只是在JNLP文件中简单的设置,但现在我不确定了。我应该如何处理这个问题?
我最初认为这只是在JNLP文件中简单的设置,但现在我不确定了。我应该如何处理这个问题?
getParent()
在一个循环中直到null
,最后一个组件之前是一个JFrame
。一旦你有了对框架的引用,你就可以调用setResizable(true)
。JComponent.getTopLevelAncestor()
来获取对根框架的引用。据我所知,当我尝试进行实验时,该方法不存在。(是的,那时候真的很久很久以前了。)这是我在init
方法末尾添加的一段代码,使我的小程序可以调整大小。我的类继承了JApplet
。
Window window = SwingUtilities.windowForComponent(this);
if (window instanceof JFrame) {
JFrame frame = (JFrame) window;
if (!frame.isResizable()) {
frame.setResizable(true);
}
}
尽管已经到了2022年,我仍然面临着这个问题。
不,我不是开发团队的一员,也没有访问源代码的权限。
我的解决方法是使用shell脚本,在每次下载JNLP时更改JNLP文件中的窗口大小以适应自己的需求。
它不能调整大小,但当然我可以通过shell脚本更改窗口大小并重新启动JNLP应用程序。
TMPFILE=/tmp/app-resized.jnlp
cat ~/Downloads/app.jnlp | sed -e 's/width="1470" height="1250"/width="1024" height="768"/' > $TMPFILE
rm ~/Downloads/app.jnlp
javaws $TMPFILE
Object
派生。getWindows()
是首选路线,但我们支持Java 5,并且已经记录为6个特性。 - Mr. BoyFrame.getFrames()
。它是1.2+。 - Andrew Thompson