java GUI使用StartOnMainThread锁定自身
我正在使用JavaApplicationBundle为我的jar文件设置图标,现在我正在尝试从Dock中删除我的程序
我已经将LSUIElement
设置为1,但直到我在Info的Java部分中添加了StartOnMainThread
指令之后,这才起作用。普利斯特
但-然后问题出现了-GUI被锁定-就像程序正在执行无限循环或其他什么。我把main()
变成这样:
public static void main(String[] args) {
Thread queryThread = new Thread() {
public void run() {
new MainWindow();
}
};
queryThread.start();
}
但是我看不到JDialog——即使JavaApplicationBundle进程正在运行,它也不会出现(因为这是现在的后台应用程序——是否有我在打开对话框时遗漏的步骤?)
什么会导致这个问题?有没有人有一个简单的应用程序包,java程序运行时不用坐在Dock上——我搜索过互联网,但搜索结果中什么都没有出现
谢谢
编辑
阅读评论后,我尝试了我已经尝试过的,但我忘记了:
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable(){
public void run() {
new MainWindow();
}
});
}
在本例中,应用程序正在运行,但没有显示GUI。当我检查控制台消息时,我很少看到这些消息:
*** -[NSConditionLock unlock]: lock (<NSCOnditionLock: 0x1347a0> '(null)') unlocked when not locked
*** Break on _NSLockError() to debug.
共 (0) 个答案