Java swing JMenuBar有时候不会显示出来

时间:2011-07-13 18:45:38

标签: java swing

我正在开发一个Java桌面应用程序,有时我的jmenubar会显示出来,有时则不会。当它没有整个程序冻结,我必须杀死它。

我正在创建它并在框架的构造函数中设置它。

代码:


    // Load any settings we might have made from last time.
    loadSettings();

    menuBar = createMenuBar();
    setJMenuBar(menuBar);    

    // re-evaluate and re-layout things, since they've been changed.
    validate();


    addWindowListener(this);    

正如您在我的代码中看到的,我添加了一个validate()调用,希望这会有所帮助。实际上它确实存在,但问题仍然时有发生。

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:4)

基本规则如下:

  1. 确认event dispatch thread上构建了所有 GUI元素。

  2. 确认吞下了 no 例外情况,尤其是在event dispatch thread上。

  3. 请注意,抛出异常后,EDT将自动重启。根据具体情况,应用程序可能会冻结。虽然您在控制台上看到某些内容,但文章Uncaught Exception Handlers可能会提供一些见解。