Java 使JNLP Web Start小程序可调整大小

Java 使JNLP Web Start小程序可调整大小,java,applet,jnlp,java-web-start,Java,Applet,Jnlp,Java Web Start,我们有一个小程序用于在浏览器中运行我们的应用程序,但我们也提供了一个JNLP web start选项。当web开始窗口启动时,它不可调整大小或最大化,我们希望使这成为可能 我最初认为它是JNLP文件中的一个简单设置,但现在我不确定。我应该如何处理这个问题?JNLP中没有适合可调整大小的小程序查看器的设置(JWS使用它来显示浮动小程序) 奥托,一点点黑客可能会让你达到目的。我记得很久以前做过这件事。我认为从内存来看,它基本上是一个循环,直到null,在此之前的最后一个组件是JFrame。一旦有了对

我们有一个小程序用于在浏览器中运行我们的应用程序,但我们也提供了一个JNLP web start选项。当web开始窗口启动时,它不可调整大小或最大化,我们希望使这成为可能


我最初认为它是JNLP文件中的一个简单设置,但现在我不确定。我应该如何处理这个问题?

JNLP中没有适合可调整大小的小程序查看器的设置(JWS使用它来显示浮动小程序)

奥托,一点点黑客可能会让你达到目的。我记得很久以前做过这件事。我认为从内存来看,它基本上是一个循环,直到
null
,在此之前的最后一个组件是
JFrame
。一旦有了对帧的引用,就可以调用
setresizeable(true)

事实上,(考虑)您还可以研究如何获取对根框架的引用。当我尝试这个实验时,这个方法并不存在。(是的,那是很久以前的事了。)


当然,总体上更好的策略是创建一个混合应用程序/applet。将小程序嵌入浏览器,并通过JWS启动框架。这提供了对GUI的完全控制。

以下是我在
init
方法末尾添加的一些代码,这些代码使我的小程序可以调整大小。我的类扩展了
JApplet

Window window = SwingUtilities.windowForComponent(this);
if (window instanceof JFrame) {
    JFrame frame = (JFrame) window;
    if (!frame.isResizable()) {
        frame.setResizable(true);
    }
}

希望这有帮助。

以下代码对我有用:

Window window = SwingUtilities.windowForComponent(this);
if (window instanceof JFrame) {
    JFrame frame = (JFrame) window;
    if (!frame.isResizable()) {
        frame.setResizable(true);
    }
}

这似乎是一个奇怪的问题,但您能从通用Java代码中获取小程序实例吗?我们的applet类实际上是一个第三方库,它将我们的应用程序作为插件加载。该小程序将主类的名称读取为一个实例,而不向我们传递小程序实例。第三方小程序将“app”类的名称作为参数传递,并通过反射传递实例。因此,我们从未被传递任何Java GUI对象,因为在游戏中我们使用一个特殊的游戏UI框架。。。它们直接来自
对象
getWindows()
将是首选路线,但我们支持Java 5,这被记录为6特性。“我们支持Java 5”在这种情况下,请参阅。它是1.2+