开始使用摇摆

Swing 已被 JavaFX 取代 。Oracle 通常建议使用 JavaFX 开发新的应用程序。仍然:在可预见的未来,Java 将支持 Swing。JavaFX 还与 Swing 很好地集成,以便顺利过渡应用程序。

强烈建议在事件调度线程上使用大部分 Swing 组件。很容易忘记将 GUI 设置绑定到 invokeLater 调用中。从 Java 文档:

Swing 事件处理代码在称为事件派发线程的特殊线程上运行。大多数调用 Swing 方法的代码也在这个线程上运行。这是必要的,因为大多数 Swing 对象方法都不是线程安全的:从多个线程调用它们会冒线程干扰或内存一致性错误。一些 Swing 组件方法在 API 规范中标记为线程安全; 这些可以从任何线程安全地调用。必须从事件派发线程调用所有其他 Swing 组件方法。忽略此规则的程序可能在大多数情况下正常运行,但会遇到难以重现的不可预测的错误。

另外,除非有充分的理由,否则一定要确保调用 setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE),否则如果忘记销毁 JVM,则可能需要处理内存泄漏。