窗口是GUI编程的基础,小应用程序或图形界面的应用程序的可视组件都放在窗口中,在GUI中,窗口是用户屏幕的一部分,起着在屏幕中一个小屏幕的作用。有以下三种窗口:
用Swing中的JFrame类或它的子类创建的对象就是JFrame窗口。
JFrame类的主要构造方法:
JFrame类的其他常用方法:
Swing里的容器都可以添加组件,除了JPanel及其子类(JApplet)之外,其他的Swing容器不允许把组件直接加入。其他容器添加组件有两种方法:
1 【例 11-1】一个用JFrame类创建窗口的Java应用程序。窗口只有一个按钮。 2 import javax.swing.*; 3 public class Example5_1{ 4 public static void main(String args[]){ 5 JFrame mw = new JFrame(“我的第一个窗口”); 6 mw.setSize(250,200); 7 JButton button = new JButton(“我是一个按钮”); 8 mw.getContentPane().add(button); 9 mw.setVisible(true); 10 } 11 }
用Swing 编写GUI程序时,通常不直接用JFrame创建窗口对象,而用JFrame派生的子类创建窗口对象,在子类中可以加入窗口的特定要求和特别的内容等。
1 【例 11-2】定义JFrame派生的子类MyWindowDemo创建JFrame窗口。类MyWindowDemo的构造方法有五个参数:窗口的标题名,加放窗口的组件,窗口的背景颜色以及窗口的高度和宽度。在主方法中,利用类MyWindowDemo创建两个类似的窗口。 2 import javax.swing.*; 3 import java.awt.*; 4 import java.awt.event.*; 5 public class Example5_2{ 6 public static MyWindowDemo mw1; 7 public static MyWindowDemo mw2; 8 public static void main(String args[]){ 9 JButton static butt1 = new JButton(“我是一个按钮”); 10 String name1 = “我的第一个窗口”; 11 String name2 = “我的第二个窗口”; 12 mw1 = new MyWindowDemo(name1,butt1,Color.blue,350,450); 13 mw1.setVisible(true); 14 JButton butt2 = new JButton(“我是另一个按钮”); 15 mw2 = new MyWindowDemo(name2,butt2,Color.magenta,300,400); 16 mw2.setVisible(true); 17 } 18 } 19 class MyWindowDemo extends JFrame{ 20 public MyWindowDemo(String name,JButton button,Color c,int w,int h){ 21 super(); 22 setTitle(name); 23 setSize(w,h); 24 Container con = getContentPane(); 25 con.add(button); 26 con.setBackground(c); 27 } 28 }
显示颜色由java.awt包的Color类管理,在Color类中预定了一些常用的颜色,参见表11-3。JFrame类的部分常用方法参见表11-4。
字段摘要 | 颜色 |
---|---|
static Color black/BLACK | 黑色 |
static Color blue/BLUE | 蓝色 |
static Color cyan/CYAN | 青色 |
static Color darkGray/DARK_GRAY | 深灰色 |
static Color gray/GRAY | 灰色 |
static Color green/GREEN | 绿色 |
static Color lightGray/LIGHTGRAY | 浅灰色 |
static Color magenta/MAGENTA | 洋红色 |
static Color orange/ORANGE | 桔黄色 |
static Color pink/PINK | 粉红色 |
static Color red/RED | 红色 |
static Color white/WHITE | 白色 |
static Color yellow/YELLOW | 黄色 |
方法 | 意义 |
---|---|
JFrame() | 构造方法,创建一个 JFrame 对象 |
JFrame(String title) | 创建一个以 title 为标题的 JFrame 对象 |
add() | 从父类继承的方法,向窗口添加窗口元素 |
void addWindowListener(WindowListener ear) | 注册监视器,监听由 JFrame 对象击发的事件 |
Container getContentPane() | 返回 JFrame 对象的内容面板 |
void setBackground(Color c) | 设置背景色为 c |
void setForeground(Color c) | 设置前景色为 c |
void setSize(int w,int h) | 设置窗口的宽为 w,高为 h |
vid setTitle(String title) | 设置窗口中的标题 |
void setVisible(boolean b) | 设置窗口的可见性,true 可见,false 不可见 |