gpt4 book ai didi

java - 使用事件队列在 main() 中执行一个简单的方法

转载 作者:行者123 更新时间:2023-11-29 07:14:58 25 4
gpt4 key购买 nike

我正在开发一个由某人开发的 Java 应用程序,作为研究项目的一部分。以下是主要方法:

 public static void main(String[] args) {
java.awt.EventQueue.invokeLater(new Runnable() {

public void run() {
// Change the name of the application on a mac
System.setProperty("com.apple.mrj.application.apple.menu.about.name",
"XX");

// Use the top of the screen for the menu on a mac
if( System.getProperty( "mrj.version" ) != null ) {
System.setProperty( "apple.laf.useScreenMenuBar", "true" );
}

try {
// Use system look and feel
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());

} catch (Exception e) {
System.out.println("Cannot use system's look and feel; using Java's default instead");
}

// Create a new instance of XX
XX.getInstance();
}
});

}

现在,我不明白为什么要使用事件队列而不是仅仅使用

 public static void main(String[] args) {

//the MAC stuff!!

XX.getInstance(); //this line creates the UI and the event handlers
}

使用EventQueue有什么意义吗?

最佳答案

应在 Initial Thread 上设置属性,然后应安排 GUI 在事件调度线程 上构建。显示了替代方法 here .

public static void main(String[] args) {
// Change the name of the application on a mac
System.setProperty(
"com.apple.mrj.application.apple.menu.about.name", "XX");
// Use the top of the screen for the menu on a mac
if (System.getProperty("mrj.version") != null) {
System.setProperty("apple.laf.useScreenMenuBar", "true");
}

java.awt.EventQueue.invokeLater(new Runnable() {

@Override
public void run() {
// Create a new instance of XX
XX.getInstance();
}
});
}

关于java - 使用事件队列在 main() 中执行一个简单的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10389873/

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