java swing,main方法中必要的调用

标签 java swing awt

在准备考试时,我偶然发现了 Java 图形中的一些线条,但我不太清楚。所以我开始浏览并检查其他一些程序,它们没有这些行。

示例:

public static void main(String[] args){
  SwingUtilities.invokeLater(new Runnable(){//unknown
  public void run(){                        //lines
  JPanel panel = new DrawingPanel();
  ...
}

现在我知道 Runnable 和 run 必须处理线程,但我不知道这两行代码为什么以及如何工作

最佳答案

Swing 对象只能从在闭环处理重绘、GUI 事件等中运行的 Swing 线程访问。当应用程序启动时,它会在普通线程(而不是 Swing 线程)中启动。您看起来很奇怪的行使用 SwingUtilities 来执行 DrawingPanel 构造函数,并且可能在 Swing 线程中执行更多代码。

直接从主线程实例化第一个 GUI 框架的代码在实践中也可能有效,如果它确实是第一个被调用的方法(如预期的那样)。然而,这是“根本错误”的方法,如果调用方式不同等,以后可能无法在不同的机器上工作。

关于java swing,main方法中必要的调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18428471/

相关文章:

java - 如何在java中的非数组网格中填充正方形?

java - ButtonHandler 无法解析为类型

java - 为什么当我们对添加到 JScrollPane 的 JPanel 使用 setPreferredSize 时它会向 JScrollPane 显示滚动条

java - JSpinner ActionListener 替代品

java - 如何多次使用一个按钮?

java - 如何从类中的每个方法中获取MethodCallExpr name 和 FieldAccessExpr 的名称?

java - 为什么 Bytearray 到 MIME 类型的转换返回 NULL

Java Attach API : changing java. library.path 动态

java - "No enclosing instance of type Hra is accessible."

java - OpenGL 和 AWT/Swing 用户界面