如果在浏览器窗口或独立小程序中打开另一个applet实例,任何人都可以建议能够创建applet并共享其参数。
我想要做的是在小程序打开时启用JButton
。如果单击该按钮,则应禁用该按钮。代码部分工作正常。什么不能正常工作,当我同时打开2个applet窗口(运行相同的代码),然后单击按钮时,该按钮在当前窗口中禁用;但它不会在另一方面禁用。
我想要完成的是打开2个applet窗口,然后在一个窗口中单击该按钮,并想要查看该按钮是否在两个窗口中都禁用。这是相同的applet代码,只打开了2个不同的窗口。我尝试过以下示例:
public void init() {
mousePressed();
click = new JButton("click");
click.setActionCommand("click");
if (isFileAvailableForCapture())
click.setEnabled(true);
else {
click.setEnabled(false);
}
}
void mousePressed(){
if(click==null)
System.out.println("This is the value of click" + click);
click = new JButton("click");
}
我将如何实现这一目标?请帮忙!
答案 0 :(得分:1)
Applet只能在同一个虚拟机实例中运行时进行通信。
您可以尝试将SEPARATE_JVM
参数指定为false
,但我不相信它会在所有情况下都有效。我希望失败的一个特殊情况是如果applet被拖出浏览器。我不确定这是否是'独立applet'的意思。
如果能使其工作,将会有什么用?你会建议在applet代码本身没有直接的方法吗?
到目前为止,我只考虑了在applet之间进行通信的典型“内置”方法。还有其他方法可以解决这个问题。
PersistenceService
,它会在第一次保存任何信息时提示用户。用户可以勾选为该JVM会话持续存在的“始终允许”框。这两个applet都可以从相同的代码库中读取/写入cookie。Socket
,但是需要一个受信任的applet来建立ServerSocket
。话虽如此,许多机器都有防火墙,套接字必须先与之抗争。