图形界面至少要有一个顶级Swing容器
图形界面至少要有一个顶级Swing容器
顶级Swing容器为其它Swing组件在屏幕上的绘制和处理事件提供支持
常用的顶级容器:
JFrame(框架):表示主程序窗口
JDialog(对话框):每个JDialog对象表示一个对话框,对话框属于二级窗口
JApplet(小程序):在浏览器内显示一个小程序界面
一个框架包括边界、菜单栏、工具栏、状态栏,以及中间占主要部分的窗格
窗格也可以看作是一种面板,但它是框架的一个组成部分
组件不会直接放到框架上,而是放在若干个面板上,这些面板再放到窗格上
用框架对象的getContentPane()函数来获得窗格,再调用窗格的add()函数放置面板
1 package Com.MySwing; 2 import java.awt.Dimension; 3 import java.awt.Toolkit; 4 5 import javax.swing.*; 6 public class OneSwing { 7 /**{ 8 * 创建并显示GUI。出于线程安全的考虑, 9 * 这个方法在事件调用线程中调用。 10 */ 11 private static void createAndShowGUI() { 12 // 确保一个漂亮的外观风格 13 JFrame.setDefaultLookAndFeelDecorated(true); 14 15 // 创建及设置窗口 16 JFrame frame = new JFrame("HelloWorldSwing"); 17 18 19 // 添加 "Hello World" 标签 20 JLabel label = new JLabel("Hello World"); 21 frame.getContentPane().add(label); 22 frame.getContentPane().setSize(300, 30); 23 // 显示窗口 24 frame.pack(); 25 frame.setVisible(true); 26 27 // 添加 "Hello World2" 标签 28 JLabel label2 = new JLabel("Hello World2"); 29 frame.getContentPane().add(label2); 30 frame.getContentPane().setSize(30, 30); 31 32 // 显示窗口 33 frame.pack(); 34 frame.setVisible(true); 35 } 36 37 public static void main(String[] args) { 38 // 显示应用 GUI 39 javax.swing.SwingUtilities.invokeLater(new Runnable() { 40 public void run() { 41 createAndShowGUI(); 42 } 43 }); 44 45 } 46 }