Java知多少(81)框架窗口基础
窗口是GUI编程的基础,小应用程序或图形界面的应用程序的可视组件都放在窗口中,在GUI中,窗口是用户屏幕的一部分,起着在屏幕中一个小屏幕的作用。有以下三种窗口:
- Applet窗口:Applet类管理这个窗口,当应用程序程序启动时,由系统创建和处理;
- 框架窗口(JFrame):这是通常意义上的窗口,它支持窗口周边的框架、标题栏,以及最小化、最大化和关闭按钮;
- 一种无边框窗口(JWindow):没有标题栏,没有框架,只是一个空的矩形。
用Swing中的JFrame类或它的子类创建的对象就是JFrame窗口。
JFrame类的主要构造方法:
- JFrame():创建无标题的窗口对象;
- JFrame(String s):创建一个标题名是字符串s的窗口对象。
JFrame类的其他常用方法:
- setBounds(int x,int y,int width,int height):参数x,y指定窗口出现在屏幕的位置;参数width,height指定窗口的宽度和高度。单位是像素。
- setSize(int width,int height):设置窗口的大小,参数width和height指定窗口的宽度和高度,单位是像素。
- setBackground(Color c):以参数 c设置窗口的背景颜色。
- setVisible(boolean b):参数b设置窗口是可见或不可见。JFrame默认是不可见的。
- pack():用紧凑方式显示窗口。如果不使用该方法,窗口初始出现时可能看不到窗口中的组件,当用户调整窗口的大小时,可能才能看到这些组件。
- setTitle(String name):以参数name设置窗口的名字。
- getTitle():获取窗口的名字。
- 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置成内容面板。
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 不可见 |
系列文章:
Java知多少(81)框架窗口基础相关推荐
- Java学习关于集合框架的基础接口--Collection接口
集合框架(Collection Framework)是Java最强大的子系统之一,位于java.util 包中.集合框架是一个复杂的接口与和类层次,提供了管理对象组的最新技术.Java集合框架标准 ...
- Java知多少(96)绘图之设置字型和颜色
Java绘图中,显示文字的方法主要有三种: (1)drawString(String str,int x,int y):在指定的位置显示字符串. (2)drawChars(char data[],in ...
- Java知多少(105)套接字(Socket)
网络应用模式主要有: 主机/终端模式:集中计算,集中管理: 客户机/服务器(Client/Server,简称C/S)模式:分布计算,分布管理: 浏览器/服务器模式:利用Internet跨平台. www ...
- Java知多少(84)图形界面之布局设计
在界面设计中,一个容器要放置许多组件,为了美观,为组件安排在容器中的位置,这就是布局设计.java.awt中定义了多种布局类,每种布局类对应一种布局的策略.常用的有以下布局类: FlowLayout, ...
- Java知多少(中)
Java知多少(上) Java知多少(39)interface接口 Java知多少(40)接口和抽象类的区别 Java知多少(41)泛型详解 Java知多少(42)泛型通配符和类型参数的范围 Java ...
- 零基础写Java知乎爬虫之进阶篇
转载自 零基础写Java知乎爬虫之进阶篇 前面几篇文章,我们都是简单的实现了java爬虫抓取内容的问题,那么如果遇到复杂情况,我们还能继续那么做吗?答案当然是否定的,之前的仅仅是入门篇,都是些基础知识 ...
- Java数据库持久层框架基础:jdbc原理和使用综述
Java数据库持久层框架基础:jdbc原理和使用综述 前言 jdbc基础架构 jbdc的使用 jdbc的主要接口 驱动 连接 连接池 会话Statement 结果集ResultSet 前言 目前jav ...
- Java知多少(43)异常处理基础
Java异常是一个描述在代码段中发生的异常(也就是出错)情况的对象.当异常情况发生,一个代表该异常的对象被创建并且在导致该错误的方法中被抛出(throw).该方法可以选择自己处理异常或传递该异常.两种 ...
- Dubbo框架-概念-基础案例
文章目录 Dubbo 一. 分布式RPC框架 Apache Dubbo 1. 软件架构的演进过程 1.1 集群和分布式 1.2 单体架构 1.2.1 架构说明 1.2.2 优点 1.2.3 缺点 1. ...
最新文章
- Ubuntu环境搭建系列—JavaEE篇
- Python中的strip()函数的用法
- Kotlin协程简介(一)
- linux 机器格式化_为什么机器人应该为我们格式化代码
- 文档服务器设置密码,文档服务器设置密码
- 论文浅尝 | 弱监督关系抽取的深度残差学习方法
- 作者:冷芳玲(1978-),女,博士,东北大学计算机科学系讲师
- 软考信息系统项目管理师_项目风险管理---软考高级之信息系统项目管理师019
- XP远程桌面连接强制登录
- ORA-22859 无效的列修改
- mysql导入报错 [Err] 1273 – Unknown collation: ‘utf8mb4_0900_ai_ci’
- word中html在哪,Win10 word模板路径在哪?Win10如何修改word模板路径?
- 高盛发布区块链报告:从理论到实践(中文版)二
- 这个社会在极严厉地惩罚不好好读书的人
- python打开网页并实现点击
- CabloyJS微信模块、企业微信模块已出齐
- 虹膜识别1.opencv3同心圆的提取
- Linux非交互式修改用户密码
- python笔记之1-简单读入+循环、判断+数组+函数调用+题目Resistors in Parallel(18焦作)
- 个人博客选什么域名?
热门文章
- 3-JAVA中的JSON操作
- ASP.NET中对STA COM组件的不正确调用产生的w3wp远程DoS
- java Runtime类
- android 自定义 打包文件类型,Android Studio配置打包生成自定义文件名
- Redis的安装配置与介绍(Windows版)
- AOP Error creating bean with name ‘myCaculator‘ defined in file [XXX]
- task.run 强制结束线程_图文介绍进程和线程的区别
- linux中tomcat安装
- yum 安装nginx
- select count(*)和select count(1)