1. Java用户界面工具包简史

P441-442

2. 显示窗体

窗体(frame):顶层窗口(没有包含在其他窗口中的窗口)。

1) 创建窗体

class SimpleFrame extends JFrame {
    private static final int startX = 148;
    private static final int startY = 98;
    private static final String GREETINGS = "Hi!";
    private static final int DEFAULT_WIDTH = 300;
    private static final int DEFAULT_HEIGHT = 200;
    
    public SimpleFrame() {
        setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
    }
    
    public void paint(Graphics g) {
        super.paint(g);
        g.drawString(GREETINGS, startX, startY);
    }
}
 
class SimpleFrameTest {
    public static void main(String... args) {
        EventQueue.invokeLater(() -> {
            var frame = new SimpleFrame();
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setVisible(true);
            Graphics g = frame.getGraphics();
            frame.paint(g);
        });
    }
}

运行上面的代码,将在屏幕中创建一个空窗体。

Swing 类位于 javax.swing 包中,包名 javax 表明这是一个 Java 扩展包(而不是核心包)。出于历史原因,Swing 被认为是扩展,不过从 Java 1.2 开始,每个 Java 实现中都包含这些类。

默认情况下窗体大小为 像素,这样的窗体没有实际意义。程序中定义了子类 SimpleFrame,它的构造器将窗体大小设置为 像素,这是 SimpleFrameJFrame 之间唯一的差别。

3. 在组件中显示信息

4. 事件处理

5. 首选项API