gpt4 book ai didi

java - Java Panel有时不会完全更新

转载 作者:搜寻专家 更新时间:2023-11-01 03:43:55 25 4
gpt4 key购买 nike

更新-21/09/2011

我已经对代码进行了初步的粗略检查,并且在通过以下方式更新用户界面的任何地方:

SwingUtilities.invokeLater(new Runnable() {
public void run() {
// code goes here
}
});

UI的主要更新发生在一个地方,首先执行上面的包装,然后要求当前的可见面板在该线程内进行自身更新,因此,如果我理解正确,它应该在EDT内?

也就是说,我可能错过了一些奇怪的地方。目前,我正在使用一些我在这里找到的AspectJ代码:

http://weblogs.java.net/blog/alexfromsun/archive/2006/02/debugging_swing.html

看看这是否会突出显示在做错事情的地方。

除此之外,还有其他想法吗?

回复:透明度假设-这将如何体现?我在找什么虽然我已经做了很多改进代码的工作,但它很大程度上是从以前的人那里继承来的,所以我对它不太熟悉,可能会有所帮助:)

回复:粘贴代码片段-我很乐意,但是没有缩小问题的范围,我无法想到要发布的明智约束片段,我确实不知道问题可能出在代码中。

感谢您到目前为止的所有回复。

原始问题

我们有一个托管在第三方系统中的应用程序。我们的一部分是返回的JPanel,宿主应用程序(Lagan CRM)然后将该Panel嵌入到他们的应用程序中。

在大多数情况下,此方法运行得很好,但是偶尔也可以,并且在我们所知的仅一种实现中,面板无法正确更新-就像某些事情阻止了面板的一部分被更新。

在下面的屏幕截图中,我们的JPanel在右下角,它的左上角实际上是“INFO”按钮。

以下是一些显示该问题的屏幕截图:

在此示例中,问题在“无法访问”和“拨号”按钮区域附近可见。

在此示例中,问题出在相同的总体区域中,但问题所在的维度并不相同,实际上我们在阳极的面积/大小方面还没有发现任何共同点。

在此示例中,我与用户进行了更多的通信,似乎发生了什么事,即在当前呼叫之前该用户显示了“GO UNAVAILABLE”按钮。然后,他们开始与呼叫者进行对话,这意味着系统应开始在左上方显示“CONNECT”,在下方显示电话号码,并在右侧显示HANGUP按钮。如您所见,它仅在其外部进行更新,中间区域有一个大块,根本没有更新,并且仍在起作用,好像它们不在通话中一样。除了看起来很丑外,它还会引起问题,因为有两个或三个按钮应替换“无法使用”按钮,这意味着该功能不可访问。

我只是想显示一些示例,以便您每次都能看到它们是不同的块,但是基本问题始终是相同的。

一些基本数据:
  • 仅在XP计算机上发生。
  • 仅在使用它的大约10-15个站点中的一个客户站点上发生,但是在该站点上的所有计算机上发生。
  • 我曾问过在顶部弹出的窗口,但是他们知道的唯一一个窗口已经向我发送了一张屏幕截图,并且该屏幕截图没有太多重叠,肯定没有与这些模式遥遥相似的东西。
  • 此站点上正在使用
  • Java 1.5,并非没有可能将100多个工作站更新为1.6,但是我需要做出一些合理的指示来提供帮助。
  • 我们在1.5上还有许多其他站点没有此问题。
  • 我们已经问过这些机器上可能还运行什么其他软件,说实话,由于它们是联络中心座席工作站,而且安装牢固,因此几乎没有。
  • 一旦呼叫者挂断,面板将自行纠正,但这意味着座席实际上失去了该呼叫,因为他们无法对其进行任何操作。在我看来,这实际上是在阻止更新,而不是持久地阻止它。
  • Panel是在SWING中实现的,没有什么特别喜欢的地方。

  • 对于我可以得到答案的其他问题的任何提示,技巧,指导,建议,或者甚至更好的解决方案:),我们将非常感激。

    最佳答案

    由于我看不到代码,因此该答案更多是您可以尝试使用的信息:)

  • 如果未从EDT中进行更新,则更新JPanel会很棘手。即使从EDT完成,当尝试更改JPanel的整个结构并重新粉刷时,我仍然遇到问题。相反,在这些地方,我已改为使用JTabbedpane。放置一个选项卡并重新创建它。更容易做到。我不确定在这种情况下是否有帮助。
  • 接下来的布局。您在使用任何布局管理器吗?如果您绝对放好东西,则取决于显示器的大小和分辨率,所有事情都会变得一团糟。我建议使用JGoodies-Forms布局。在此处链接-http://www.jgoodies.com/freeware/forms/

  • 抱歉不能提供更多帮助.. :(

    关于java - Java Panel有时不会完全更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7483493/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com