Java程序在eclipse上崩溃,出现了奇怪的错误

时间:2014-02-26 22:54:41

标签: java user-interface swt

我有这个带有SWT GUI的java项目。 我已经开展了几个星期的工作,但我遇到了一些我无法解决的问题。

我有一个MainMenu对象渲染主菜单,它上面有一些按钮。

public static void main(String[] args) {
    MainMenu menu=new MainMenu();
    menu.run();
}

主菜单有一个扩展MouseAdapter的内部类:

private class StartGameListener extends MouseAdapter

它的目的是听取开始游戏按钮并根据用户选择启动游戏,其中一个提供自定义棋盘游戏,玩家可以在棋盘上决定草稿的初始位置。登记/> 为了实现这一点,我创建了一个名为CustomBoard的对象 因此,每当用户按下StartGame按钮并选中“Custom Game”选项时,它会激活内部类StartGameListener中的“mouseUp()”方法,并实例化一个CustomBoard对象并(应该)运行它。 /> 问题是,只要控件到达构造函数行:

CustomBoard custom_board_menu=new CustomBoard(display, board_size);

我在控制台中遇到了这个令人讨厌的错误;

(SWT:2806): GLib-GObject-CRITICAL **: g_closure_add_invalidate_notifier: assertion 'closure->n_inotifiers < CLOSURE_MAX_N_INOTIFIERS' failed

在无限循环中一遍又一遍地出现,程序当然会粉碎。
我应该(也许)提三件事:
1.每次出现不同的代码错误(这次是(SWT:2806),你可以看到)。 2.我有另一个 GUI对象,它可以从相同的“mouseUp()”方法运行得很好。 3.这是最奇怪的:当我独立于MainMenu实例化CustomBoard对象时,意思是:

public static void main(String[] args) {
    CustomBoard cb=new CustomBoard(new Display(), 8);
    cb.run();
}

它有效!

我试图谷歌,但找不到有关此错误的任何信息 任何帮助将不胜感激!

0 个答案:

没有答案