代码之家  ›  专栏  ›  技术社区  ›  Mark

JDialog未绘制

  •  1
  • Mark  · 技术社区  · 17 年前

    我对java还不熟悉,但我会认为这是非常直接的。当从文本文件导入数据时,我会显示一个JDialog供用户输入,但是在其他计算机上没有正确绘制该对话框。

    在我的计算机上,如果我从NetBeans内部或从命令提示符运行程序,则对话框将正确显示。如果我在电脑上运行程序,它应该在电脑上运行,那么对话框的内部就不会被绘制出来——我看到的只是对话框的边框,然后是它后面的屏幕,控件应该在那里。此计算机正在运行XPSP2和jre6 update 11。

    有人知道会出什么问题吗?

    短暂性脑缺血发作

    4 回复  |  直到 17 年前
        1
  •  1
  •   L. Cornelius Dol    17 年前

    我们需要查看您的代码以确定,但很可能您正在 UI thread ,在某些侦听器代码中-由于使用的是UI线程,因此在从侦听器返回之前不会处理任何事件。

        2
  •  0
  •   Limbic System    17 年前

    你是不是在做所有与秋千有关的工作 Event Dispatch Thread ? 如果是的话,你确定你没有阻塞这个线程,或者做一些缓慢的事情吗?

        3
  •  0
  •   Richard Walton    17 年前

    通过命令终端运行程序,以便查看程序是否抛出了异常。

        4
  •  0
  •   Nick Fortescue    17 年前

    代码在一个地方工作,但在另一个地方不工作。电脑不是魔法。所以这两台电脑肯定有些不同。代码是Swing GUI代码。三个最可能的区别是:

    • 不同的视频硬件
    • 不同的Swing外观和感觉(可能是由不同的操作系统引起的)

    两台计算机(如JRE或OS)之间的差异可能会导致执行不同的代码。你已经告诉我们目标机器的JRE和操作系统:那你的机器呢?你能找到第三台机器,或者安装另一个JRE,这样我们就知道它是机器还是JRE了?

    你可能有不同的秋千外观和感觉在两台机器上。尝试用不同的外观和感觉。

    UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
    

    只需提到问题可能是您的代码在某个地方,而bug更可能是您的代码,而不是Swing库中的代码,但这至少可以帮助您弄清楚为什么所有东西都在一台机器上工作,而不是在另一台机器上。