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,它的构造器将窗体大小设置为 像素,这是 SimpleFrame 和 JFrame 之间唯一的差别。