无法以编程方式触发click事件

时间:2013-06-17 04:30:22

标签: java swing instrumentation

我有以下情景,我被困在一个地方。有人可以帮我这个吗?

我有一个部署在server1上的applet应用程序,我正在client1上访问此applet。当我点击JTabbedPane的任何特定选项卡时,请求转到服务器并下载要加载的特定类。当我使用鼠标单击任何选项卡时,一切正常。当我以编程方式执行相同的操作(调度MouseEvent或使用setSelectedIndex()的{​​{1}}方法)时,它不起作用。

注意:我的调度事件代码不在同一个域中,我只在本地使用此代码,请在下面阅读我如何调度该事件。

我创建了一个java代理JTabbedPane,其中包含一个单击选项卡以选择特定选项卡(MyAgent.jar)的函数。

我的java代理程序(检测代理程序)在JTabbedPane上运行applet时,我正在使用applet附加我的java代理程序,此代理程序将调度鼠标单击事件。在这种情况下,选项卡会被选中,但它会抛出client1,并且由于异常而没有在此选项卡中加载任何组件。

任何人遇到类似的问题或有任何人想知道任何事情要试用,请告诉我。

2 个答案:

答案 0 :(得分:2)

而不是使用MouseListener来监控对选项卡状态的更改,您应该将ChangeListener附加到选择模型。

这样,标签的更改方式无关紧要。

答案 1 :(得分:1)

问题解决了。 javaAgent的securityContext不同,applet的securityContext也不同。因此javaAgent无法加载applet上下文中存在的类。现在我进行了更改,以便我的代码也可以在applet上下文中运行。现在,当事件被触发时,它可以加载所需的类。