Java知多少(97)框架窗口基础

窗口是GUI编程的基础,小应用程序或图形界面的应用程序的可视组件都放在窗口中,在GUI中,窗口是用户屏幕的一部分,起着在屏幕中一个小屏幕的作用。有以下三种窗口:

  1. Applet窗口:Applet类管理这个窗口,当应用程序程序启动时,由系统创建和处理;
  2. 框架窗口(JFrame):这是通常意义上的窗口,它支持窗口周边的框架、标题栏,以及最小化、最大化和关闭按钮;
  3. 一种无边框窗口(JWindow):没有标题栏,没有框架,只是一个空的矩形。

用Swing中的JFrame类或它的子类创建的对象就是JFrame窗口。

JFrame类的主要构造方法:

  1. JFrame():创建无标题的窗口对象;
  2. JFrame(String s):创建一个标题名是字符串s的窗口对象。

JFrame类的其他常用方法:

  1. setBounds(int x,int y,int width,int height):参数x,y指定窗口出现在屏幕的位置;参数width,height指定窗口的宽度和高度。单位是像素。
  2. setSize(int width,int height):设置窗口的大小,参数width和height指定窗口的宽度和高度,单位是像素。
  3. setBackground(Color c):以参数 c设置窗口的背景颜色。
  4. setVisible(boolean b):参数b设置窗口是可见或不可见。JFrame默认是不可见的。
  5. pack():用紧凑方式显示窗口。如果不使用该方法,窗口初始出现时可能看不到窗口中的组件,当用户调整窗口的大小时,可能才能看到这些组件。
  6. setTitle(String name):以参数name设置窗口的名字。
  7. getTitle():获取窗口的名字。
  8. setResiable(boolean m):设置当前窗口是否可调整大小(默认可调整大小)。

Swing里的容器都可以添加组件,除了JPanel及其子类(JApplet)之外,其他的Swing容器不允许把组件直接加入。其他容器添加组件有两种方法:

  • 一种是用getContentPane()方法获得内容面板,再将组件加入。例如,例5.1程序中的代码:
        mw.getContentPane().add(button);
    该代码的意义是获得容器的内容面板,并将按钮button添加到这个内容面板中。
  • 另一种是建立一个JPanel对象的中间容器,把组件添加到这个容器中,再用setContentPane()把这个容器置为内容面板。例如,代码:
        JPanel contentPane = new JPanel();
        …
        mw.setContentPane(contentPane);
    以上代码把contentPane置成内容面板。

【例 11-1】一个用JFrame类创建窗口的Java应用程序。窗口只有一个按钮。

 1 import javax.swing.*;
 2 public class Example5_1{
 3     public static void main(String args[]){
 4         JFrame mw = new JFrame(“我的第一个窗口”);
 5         mw.setSize(250,200);
 6         JButton button = new JButton(“我是一个按钮”);
 7         mw.getContentPane().add(button);
 8         mw.setVisible(true);
 9     }
10 }

用Swing 编写GUI程序时,通常不直接用JFrame创建窗口对象,而用JFrame派生的子类创建窗口对象,在子类中可以加入窗口的特定要求和特别的内容等。

【例 11-2】定义JFrame派生的子类MyWindowDemo创建JFrame窗口。类MyWindowDemo的构造方法有五个参数:窗口的标题名,加放窗口的组件,窗口的背景颜色以及窗口的高度和宽度。在主方法中,利用类

 1 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。

表11-3 Color 类中定义的常用颜色
字段摘要 颜色
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 黄色
表 11-4 JFrame 类的部分常用方法
方法 意义
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 不可见

系列文章:

Java知多少(上)

Java知多少(中)

Java知多少(78)Java向量(Vector)及其应用

Java知多少(79)哈希表及其应用

Java知多少(80)图形界面设计基础

Java知多少(81)框架窗口基础

Java知多少(82)标签、按钮和按钮事件简介

Java知多少(83)面板基础:JPanel和JScrollPane

Java知多少(84)图形界面之布局设计

Java知多少(85)文本框和文本区

Java知多少(86)文本框和文本区的输入输出

Java知多少(87)选择框和单选按钮

Java知多少(88)列表和组合框

Java知多少(89)列表和组合框

Java知多少(90)菜单

Java知多少(91)对话框

Java知多少(92)滚动条

Java知多少(93)鼠标事件

Java知多少(94)键盘事件

Java知多少(95)绘图基础

Java知多少(96)绘图之设置字型和颜色

时间: 2024-10-11 16:19:15

Java知多少(97)框架窗口基础的相关文章

Java知多少(81)框架窗口基础

窗口是GUI编程的基础,小应用程序或图形界面的应用程序的可视组件都放在窗口中,在GUI中,窗口是用户屏幕的一部分,起着在屏幕中一个小屏幕的作用.有以下三种窗口: Applet窗口:Applet类管理这个窗口,当应用程序程序启动时,由系统创建和处理: 框架窗口(JFrame):这是通常意义上的窗口,它支持窗口周边的框架.标题栏,以及最小化.最大化和关闭按钮: 一种无边框窗口(JWindow):没有标题栏,没有框架,只是一个空的矩形. 用Swing中的JFrame类或它的子类创建的对象就是JFram

【Java GUI】Java框架窗口基础

窗口是GUI变成的基础,小应用程序或图形界面的应用程序的可视组件都放在窗口中.在GUI中,窗口是用户屏幕的一部分,起着在屏幕中一个小屏幕的作用.有下面三种窗口: ①Applet窗口:Applet类管理这个窗口,当应用程序启动时,由系统创建和处理. ②框架窗口(JFrame):这是通常意义上的窗口,它支持窗口周边的框架,标题栏以及最小化 最大化和关闭按钮. ③一种无边框窗口(JWindow):没有标题栏,没有框架,只是一个空的矩形. 用Swing中的JFrame类或者它的子类创建的对象就是JFra

【Java GUI】框架窗口基础

窗口是GUI编程的基础,小应用程序或图形界面的应用程序的可视组件都放在窗口中,在GUI中,窗口是用户屏幕的一部分,起着在屏幕中一个小屏幕的作用.有以下三种窗口: ①Applet窗口 ②框架窗口(JFrame) ③一种无边框窗口(JWindow) 用Swing中的JFrame类或它的子类创建的对象就是JFrame窗口. JFrame类的主要构造方法: JFrame();//创建无标题的窗口对象: JFrame(String s);//创建一个标题名是字符串s的窗口对象. JFrame类的其他常用方

Java学习关于集合框架的基础接口--Collection接口

 集合框架(Collection  Framework)是Java最强大的子系统之一,位于java.util 包中.集合框架是一个复杂的接口与和类层次,提供了管理对象组的最新技术.Java集合框架标准化了程序处理对象组的方式. 集合框架在设计上需要满足几个目标.首先,框架必须是高性能的.基本集合(动态数组.链表.树以及哈希表)的实现是高效率的.很少需要手动编写这些数据引擎中的某一个.其次,框架必须允许不同类型的集合以类似的方式进行工作,并且具有高度的互操作性.再次,扩展或改造必须易于实现.为了满

Java知多少(102)多媒体基础

本节介绍 Java程序播放幻灯片和动画,播放声音和视频的方法. 播放幻灯片和动画 用实例说明播放幻灯片和动画的方法. [例 12-7]小应用程序先将幻灯片读入数组在存储,单击鼠标变换幻灯片,逐张显示. 1 import java.applet.*import java.awt.*; 2 import java.awt.event.*; 3 public class Example7_7 extends Applet implements MouseListener{ 4 final int nu

Java知多少(95)绘图基础

要在平面上显示文字和绘图,首先要确定一个平面坐标系.Java语言约定,显示屏上一个长方形区域为程序绘图区域,坐标原点(0,0)位于整个区域的左上角.一个坐标点(x,y)对应屏幕窗口中的一个像素,是整数.如图12.1所示.窗口大小由超文本文件中的width和height指定.例如,以下超文本确定窗口宽为250像素,高为400像素:     <applet code = h.class width=250 height=400></applet>注:applet是一种嵌入网页的Java

Java知多少(完结篇)

Java知多少(1)语言概述 Java知多少(2)虚拟机(JVM)以及跨平台原理 Java知多少(3) 就业方向 Java知多少(4)J2SE.J2EE.J2ME的区别 Java知多少(5) Java开发环境的搭建 Java知多少(6)第一个程序示例 Java知多少(7)类与对象 Java知多少(8)类库及其组织结构 Java知多少(9) import及Java类的搜索路径 Java知多少(10)数据类型及变量 Java知多少(11)数据类型转换 Java知多少(12)运算符 Java知多少(1

Java知多少(110)数据库之插入记录

插入数据表记录有3种方案 一.使用Statement对象 实现插入数据表记录的SQL语句的语法是: insert into 表名(字段名1,字段名2,……)value (字段值1,字段值2,……) 例如: insert into ksInfo(考号,姓名,成绩,地址,简历)value(‘200701’,’张大卫’534,’上海欧阳路218弄4-1202’,’’) 实现同样功能的Java程序代码是: sql = “insert intoksIno(考号,姓名,成绩,地址,简历)”; sql= =

Java知多少(104)网络编程之统一资源定位符URL

统一资源定位符URL(Uniform Resource Locator)是www客户机访问Internet时用来标识资源的名字和地址.超文本链路由统一资源定位符URL维持.URL的格式是: <METHOD>://<HOSTNAME:PORT>/<PATH>/<FILE> 其中:Method是传输协议:HOSTNAME是文档和服务器所在的Internet主机名(域名系统中DNS中的点地址);PORT是服务端口号(可省略):PATH是路径名,FILE是文件名.例