如果我们在主线程中创建JavaSwing应用程序,将会发生什么?

如果我们在主线程中创建JavaSwing应用程序,将会发生什么?,java,swing,rule,Java,Swing,Rule,如果我们在主线程中创建JavaSwing应用程序,将会发生什么?经验法则是我们必须在EDT中启动应用程序??请帮助。Q1。根据经验,我们必须在EDT中启动应用程序 这不是一条经验法则——更像是一项要求: 通常,Swing不是线程安全的。除非另有说明,否则必须在事件调度线程上访问所有Swing组件和相关类 问题2。如果我们在主线程中创建JavaSwing应用程序,将会发生什么 它可能起作用,也可能不起作用:其行为尚未明确。同一页上给出了一个示例: 如果在单独的线程上修改模型,则可能会出现异常和显示

如果我们在主线程中创建JavaSwing应用程序,将会发生什么?经验法则是我们必须在EDT中启动应用程序??请帮助。

Q1。根据经验,我们必须在EDT中启动应用程序

这不是一条经验法则——更像是一项要求:

通常,Swing不是线程安全的。除非另有说明,否则必须在事件调度线程上访问所有Swing组件和相关类

问题2。如果我们在主线程中创建JavaSwing应用程序,将会发生什么

它可能起作用,也可能不起作用:其行为尚未明确。同一页上给出了一个示例:

如果在单独的线程上修改模型,则可能会出现异常和显示损坏的风险


问题1。根据经验,我们必须在EDT中启动应用程序

这不是一条经验法则——更像是一项要求:

通常,Swing不是线程安全的。除非另有说明,否则必须在事件调度线程上访问所有Swing组件和相关类

问题2。如果我们在主线程中创建JavaSwing应用程序,将会发生什么

它可能起作用,也可能不起作用:其行为尚未明确。同一页上给出了一个示例:

如果在单独的线程上修改模型,则可能会出现异常和显示损坏的风险

如果我们在main中创建JavaSwing应用程序,将会发生什么 线根据经验,我们必须在中启动应用程序 EDT

从理论上讲,这并不重要,重要的是避免在非静态类中创建GUI,或者与在主类中创建的对象相比,避免在void中创建GUI

在主类中创建的对象不可直接访问,这与extends JComponents的问题相同

重要的是在中创建和显示Swing GUI

如果我们在main中创建JavaSwing应用程序,将会发生什么 线根据经验,我们必须在中启动应用程序 EDT

从理论上讲,这并不重要,重要的是避免在非静态类中创建GUI,或者与在主类中创建的对象相比,避免在void中创建GUI

在主类中创建的对象不可直接访问,这与extends JComponents的问题相同

重要的是在中创建和显示Swing GUI

而且有很好的答案

我使用以下类的变体启动每个Swing应用程序:

import javax.swing.SwingUtilities;

import com.ggl.stopwatch.view.StopwatchFrame;

public class Stopwatch implements Runnable {

    @Override
    public void run() {
        new StopwatchFrame();
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Stopwatch());
    }

}
而且有很好的答案

我使用以下类的变体启动每个Swing应用程序:

import javax.swing.SwingUtilities;

import com.ggl.stopwatch.view.StopwatchFrame;

public class Stopwatch implements Runnable {

    @Override
    public void run() {
        new StopwatchFrame();
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Stopwatch());
    }

}

你试了什么?你认为会发生什么?为什么?我不知道。今天刚完成了辅导课上的秋千,辅导老师问了这个问题,每个人都是空白的。我对这个很陌生。很高兴知道。@mohit你尝试了什么?你认为会发生什么?为什么?不知道。今天刚完成了辅导课中的摇摆,辅导老师问了这个问题,每个人都是空白的。我对此非常陌生。非常兴奋地想知道。@mohit如果没有例外,它可能会工作?可能会出现显示损坏和其他问题,如组件更新不正确或事件未触发等,等。如果没有异常,可能会出现显示损坏和其他问题,如组件未正确更新或事件未触发等。我总是在EDT上调用我的方法,这样我就不会浪费时间追逐小精灵。-我总是在EDT上调用我的方法,这样我就不会浪费时间追逐小精灵-