这些Java教程是为JDK 8编写的。本页面中描述的示例和实践不利用后续版本中引入的改进,并可能使用不再可用的技术。
请参阅Java语言更改以了解Java SE 9及后续版本中更新的语言特性的摘要。
请参阅JDK发行说明以获取有关所有JDK版本的新功能、增强功能和已删除或不推荐选项的信息。
所有的图形用户界面都需要一个主应用程序框架来显示。在Swing中,这个框架是javax.swing.JFrame
的一个实例。因此,我们的第一步是实例化这个类,并确保一切正常。注意,在Swing中编程时,你的GUI创建代码应该放在事件分发线程(EDT)上。这将防止潜在的竞争条件,可能导致死锁。以下代码清单展示了如何完成这个操作。
javax.swing.JFrame的一个实例
点击“Launch”按钮以使用Java™ Web Start运行SwingPaintDemo1(下载JDK 7或更高版本)。或者,要自己编译和运行示例,请参考示例索引。
package painting; import javax.swing.SwingUtilities; import javax.swing.JFrame; public class SwingPaintDemo1 { public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { createAndShowGUI(); } }); } private static void createAndShowGUI() { System.out.println("在EDT上创建GUI? "+ SwingUtilities.isEventDispatchThread()); JFrame f = new JFrame("Swing Paint Demo"); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setSize(250,250); f.setVisible(true); } }
这段代码创建了一个框架,设置了它的标题,并使它可见。我们使用了SwingUtilities
帮助类在事件分发线程上构建这个GUI。请注意,默认情况下,当用户点击“关闭”按钮时,JFrame
不会退出应用程序。我们通过调用setDefaultCloseOperation
方法并传入适当的参数来提供这个行为。此外,我们明确设置了框架的大小为250 x 250像素。一旦我们开始向框架中添加组件,这一步将不再需要。
练习: