gpt4 book ai didi

Java GUI 按钮有时不绘制(随机)。编译问题

转载 作者:行者123 更新时间:2023-11-30 06:35:03 25 4
gpt4 key购买 nike

*编辑 2:我刚刚发现这是一个 compiz+java GUI 问题。它显然发生在这两个元素相交的地方。我正在运行包含所有更新的最新 Ubuntu 11.04(经典桌面,而非 Unity)。 Sun java 和 OpenJDK 都会出现此问题。它与使用我需要使用的 Window-Rules Compiz 插件有关。

如以下评论所述,我之前已验证我的控件已添加到正确的线程中。现在我发现禁用 Compiz Window-Rules 插件可以解决我的问题。由于我需要使用插件,所以我正在寻找解决方案。*

原帖:我正在开发 Java swing 应用程序。它是用 NetBeans 6.9 构建的。它使用 GridBagLayout 管理器。外观和感觉目前是 Nimbus(但这似乎对我要描述的问题没有任何影响)。大多数用户在 Linux 上运行该应用程序。少数使用 Windows。大多数情况下,该应用程序运行良好。但是在随机的时间里,一个 View 会在没有一些 GUI 按钮的情况下打开。例如,保存和取消按钮可能会丢失。其他 GUI 元素通常会存在(尽管有一次我听说 View 完全是空的,没有 GUI 元素——只是一个空的灰色窗口)。

如果用户关闭带有上角“X”的 View 并简单地重新打开它,它将被正确绘制。丢失按钮问题的发生率不到 1%。关闭/重新打开序列几乎可以 100% 地修复它。 (如果我没记错的话,可能需要第二次关闭/重新打开一次。)

通常,如果缺少某些按钮,其他元素仍会正确绘制。这不会影响整个 View (窗体)。它似乎影响了最下面的面板,但我不确定这是否真的是可重复的模式。很难重现这一点。我每天都使用该软件,而且我每个月看到的次数还不到一次。一些用户更频繁地看到它,但它仍然很少见。

没有错误信息。我不知道接下来要尝试什么。这种行为在不同的计算机、不同的 Linux 发行版(尽管都是基于 Debian)和许多不同的代码更改(包括更改布局管理器)中一直存在。 (我们之前使用的是 NetBeans GUI 设计器。)有什么想法吗?

编辑:2011.07.05代码通常是这样的:

public void show_some_view() {
setTitle(...)
setLayout(new GridBagLayout());
JPanel butnPanel = new JPanel();
butnPanel.setLayout(new GridBagLayout());
try {
//add stuff to panels (butnPanel, etc.)
} catch (Exception e) {
Logger.log(e);
}
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
int[] wh = ApplicationContext.get().getDisplayWidthxHeight();
setSize(wh[0], wh[1]);
setFocusable(true);
setVisible(true);
}

最佳答案

But at random times a view will open without some of the GUI buttons.

  1. 确保将按钮添加到 EDT 上的 GUI。阅读 Concurrency 上的 Swing 教程部分了解更多信息。

  2. 确保在调用 setVisible(true) 之前将按钮添加到 GUI;

关于Java GUI 按钮有时不绘制(随机)。编译问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6449101/

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