Java小程序在运行JRE 1.7的客户端上有奇怪的怪癖

Java小程序在运行JRE 1.7的客户端上有奇怪的怪癖,java,applet,java-7,Java,Applet,Java 7,我有一个小程序,由运行在Java1.5上的WebLogic10提供服务。我曾尝试使用Java1.6和Java1.7构建有问题的小程序,但两者都有相同的怪癖 问题是,当客户端使用JRE 1.7运行小程序时,会从完全不同的面板调用函数。我知道这毫无意义,但事实确实如此。发生的情况如下: 用户加载应用程序并选择要使用的数据对象。此数据对象有两个面板:快速视图和详细视图。在详细视图中,用户可以更改对象资产值,但不能在快速视图中更改。如果他们试图改变资产价值,就会出现一个警报“你确定吗?”。因此,在快速查

我有一个小程序,由运行在Java1.5上的WebLogic10提供服务。我曾尝试使用Java1.6和Java1.7构建有问题的小程序,但两者都有相同的怪癖

问题是,当客户端使用JRE 1.7运行小程序时,会从完全不同的面板调用函数。我知道这毫无意义,但事实确实如此。发生的情况如下:

用户加载应用程序并选择要使用的数据对象。此数据对象有两个面板:快速视图和详细视图。在详细视图中,用户可以更改对象资产值,但不能在快速视图中更改。如果他们试图改变资产价值,就会出现一个警报“你确定吗?”。因此,在快速查看时,他们会随机收到这些警报,确保他们确实想要更改对象资产的价值,即使他们甚至不在屏幕上,这是可能的。更糟糕的是,详细视图上的其他值被随机更改为零或空,并且由于它们不需要确认,因此会立即命中数据库

请注意,我们公司有很多不同的java应用程序,只有一个有这个问题。我们要求我们的用户不要安装Java1.7,但偶尔有人安装,这个应用程序就会中断。然后我们必须删除1.7,然后安装1.6,一切正常

我尝试过调试这个,但在任何地方都找不到任何东西。此外,我不是该应用程序的作者,只是负责找到解决方案。任何帮助都将不胜感激,甚至是一些关于在哪里查看或如何正确调试的想法

注意,我最近在小程序方面做得不多

小程序具有具有以下作用域的方法:

{ init { start; stop } destroy }
开始/停止范围涉及显示的HTML页面

我的猜测是,在
init
中发生的事情太多,或者使用了
static
字段

使用
init
可以扩展旧的小程序,使用空的
init
,并在
start
中调用
super.init()
。 同样,对于
停止
/
销毁

例如,可以通过
javap
查看静态字段。然后您确实需要重写,但是静态字段对于小程序来说是绝对不行的


小程序可以使用JDK的bin目录中的
appletviewer
进行测试。

我查看了应用程序,唯一静态的是它们的常量。启动、停止和销毁都为空,初始化“似乎”正常。我将从这里开始评论功能,也许这将缩小问题的范围。然后这是一场白费力气的追逐:确保actionPerformed调用首先调用调用器。对于JFrame,内容窗格(
getContentPane()
)是从旧Java添加到新Java的,其中
JFrame.add
实际上添加到内容窗格中
getParent
然后出错。