框架窗口基础
周sir |
2015年6月3日 |
图形界面(GUI) |
0 条评论 | 1489
窗口是 GUI 编程的基础。小应用程序或图形界面应用程序的可视组件都放在窗口中。在 GUI 里,窗口是用户屏幕的一部分,起着「屏幕中的小屏幕」的作用。常见有三种窗口。
-
Applet 窗口:由 Applet 类管理,程序启动时由系统创建和处理。
-
框架窗口(JFrame):通常意义上的窗口,有边框、标题栏,以及最小化、最大化、关闭按钮。
-
无边框窗口(JWindow):没有标题栏和框架,只是一个空矩形。
用 Swing 的 JFrame 类或其子类创建的对象就是 JFrame 窗口。
一、JFrame 常用方法
主要构造方法:JFrame() 创建无标题窗口;JFrame(String s) 创建标题为 s 的窗口。
| 方法 |
作用 |
| setBounds(x, y, width, height) |
位置与宽高,单位像素 |
| setSize(width, height) |
设置窗口大小 |
| setBackground(Color c) |
背景颜色 |
| setVisible(boolean b) |
可见性;JFrame 默认不可见 |
| pack() |
紧凑显示;否则初始可能看不到组件 |
| setTitle / getTitle |
设置 / 获取窗口标题 |
| setResizable(boolean m) |
是否可调整大小(原文 setResiable 为笔误) |
二、怎样往窗口加组件
Swing 里除 JPanel 及其子类之外,其他容器不允许把组件直接加入。常用两种做法:一是 getContentPane() 拿到内容面板再 add;二是建一个 JPanel 中间容器,用 setContentPane() 把它设成内容面板。
mw.getContentPane().add(button);
JPanel contentPane = new JPanel();
mw.setContentPane(contentPane);
三、两个窗口示例
【例 11-1】用 JFrame 创建一个只有一个按钮的窗口。
import javax.swing.*;
public class Example5_1 {
public static void main(String args[]) {
JFrame mw = new JFrame("我的第一个窗口");
mw.setSize(250, 200);
JButton button = new JButton("我是一个按钮");
mw.getContentPane().add(button);
mw.setVisible(true);
}
}
用 Swing 写 GUI 时,通常不直接 new JFrame,而用派生子类,方便加入特定要求和内容。【例 11-2】用子类 MyWindowDemo 创建两个类似窗口。原文 JButton static butt1 无法编译,已改为普通局部变量。
import javax.swing.*;
import java.awt.*;
public class Example5_2 {
public static MyWindowDemo mw1;
public static MyWindowDemo mw2;
public static void main(String args[]) {
JButton butt1 = new JButton("我是一个按钮");
String name1 = "我的第一个窗口";
String name2 = "我的第二个窗口";
mw1 = new MyWindowDemo(name1, butt1, Color.blue, 350, 450);
mw1.setVisible(true);
JButton butt2 = new JButton("我是另一个按钮");
mw2 = new MyWindowDemo(name2, butt2, Color.magenta, 300, 400);
mw2.setVisible(true);
}
}
class MyWindowDemo extends JFrame {
public MyWindowDemo(String name, JButton button, Color c, int w, int h) {
super();
setTitle(name);
setSize(w, h);
Container con = getContentPane();
con.add(button);
con.setBackground(c);
}
}
显示颜色由 java.awt 包的 Color 类管理,预定了一些常用颜色,见表 11-3。JFrame 部分常用方法见表 11-4。


一句话总结:JFrame 默认看不见,要 setVisible(true);组件加到内容面板上,日常用子类封装标题、尺寸和背景。
转载请注明来源:框架窗口基础
我是周sir,这是我的博客。致力于分享我学会的技术和优秀的文章。微信公众号 “周sir专栏” 欢迎大家关注。