gpt4 book ai didi

java - 如何防止空白的 JOptionPane 窗口

转载 作者:行者123 更新时间:2023-12-04 05:39:13 27 4
gpt4 key购买 nike

这个问题在这里已经有了答案:




9年前关闭。




Possible Duplicate:
How do I run JOptionPane on EDT?



在看似随机的时间(即,如果程序运行足够多的时间) JOptionPane我编程的窗口将显示一个空白窗口,关闭和确定按钮在那里,但没有我编码的文本。这似乎发生在任何用 JOptionPane 编写的程序中。最终;有什么方法可以防止这种情况发生吗? FWIW 这很少(如果有的话)连续发生两次。

我刚刚写了这个,连续运行了15次,没有任何问题。这与我在使用 JOptionPane 时使用的编码完全相同。 .有什么遗漏吗?
import javax.swing.JOptionPane;
public class SimpleJOptionPane
{
public static void main(String[] args)
{
JOptionPane.showMessageDialog(null, "Hello, World!");
}//end main
}//end class SimpleJOptionPane

一般不会出现这个问题。 JOptionPane通常与预期的文本一起显示。当它不起作用时,在我不知情的情况下会发生什么变化?

正如评论中所建议的,我正在研究使用 EventQueue.isDispatchThread()

如您所见,下面的代码使用另一种方法来显示 JOptionPane。这是一个适当的解决方案吗?
final String ERR_TITLE = "Error";
final String ERR_MSG = "An exception has occured; please start over.";
showError(ERR_MSG, ERR_TITLE);

public static void showError(final String MESSAGE, final String TITLE)
{
JOptionPane.showMessageDialog(null, MESSAGE, TITLE, JOptionPane.ERROR_MESSAGE);
}//end showError

最佳答案

如果我是你,我会这样做:

  • 创建一个委托(delegate)执行 JOptionPane
  • 的静态方法
  • 确保我的所有代码都引用该方法而不是 JOptionPane
  • 在该静态方法中检查空字符串和空值。

  • -
    public static void myShowMessage(String s) {
    if(s == null || "".equals(s)) {
    System.out.println("AHA! gotcha ...");
    }
    JOptionPane.showMessageDialog(null, s);
    }

    我知道这听起来可能有点傻,但从经验来看,这在 API 本身不是问题......

    关于java - 如何防止空白的 JOptionPane 窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11490142/

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