*第十六章GUI编程* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
一.什么是GUI
GUI图形用户界面图形用户界面GUI
GUI用java创建带接口的APP应用程序
两种技术
1.awt (abstract windowt工具包)。
抽象窗口的工具集
图形界面不是java本身实现的,实际上依赖于作为操作系统基础的函数
为了匹配在不同操作系统上运行相同java程序的效果
既然awt技术是提取所有操作系统共有的函数,是函数的交集
毫无疑问功能比较单一
2. Swing
由于纯java实现不依赖于操作系统的基本函数,因此组件丰富
也可以跨平台
二. why
1. Awt和Swing虽然过时,但图形用户界面的编程思想并不过时。 我们学习
本章主要学习GUI编程思想,为今后学习Android等奠定基础
2 .为了做初级项目
*常规组件继承关系图和常规方法* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
常用组件的常用方法
1 .设置位置
设置位置(int y,int y ) )。
2 .安装尺寸
设置(intwidth,int height ) )。
3 .设置位置和大小
设置边界(int y、int y、int width、int height ) )。
4 .设置组件可见性
设置可见(布尔标志) )。
容器的一般方法
容器:是一种特殊组件,可以容纳其他组件
1 .向容器中添加组件
组件添加(组件组件)。
.
* * * * * * * * * * * * * *容器集的继承关系图*************************
一.窗口
顶层容器可以独立使用
面板)。
只能放在其他容器中使用,而不是顶级容器。 (窗口或面板)。
java程序最初分为两个类别:
1.APP
2 .小程序可以嵌入到网页中的java小程序
小程序后来被flash技术打败了
* * * * * * * * * * * * * * * *框架* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *。
顶级容器,可独立使用
Frame表示一般窗口,是窗口类的子类,具有以下特征:
1.Frame对象有一个标题,可以通过拖动来更改窗口的位置和大小
2 .初始化时看不到,所以用setvisible(true )表示
3 .默认情况下,BorderLayout用作布局管理器(稍后)。
package com.chapter16;
import java.awt.Frame;
公共类测试框架{
publicstaticvoidmain (字符串[ ] args ) {
帧帧=new帧('我是标题');
frame.set location (50,150 );
frame.setsize (300,200 );
frame.setvisible(true;
}
}
* * * * * * * * * * * * * * * * * * * Panel * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *。
不是顶级容器,不能独立使用。 必须放在其他容器中,如窗口或面板
1 .可以提供用于容纳其他组件作为容器和放置组件的空间
2 .不能单独存在,必须放入其他容器中
3 .默认情况下,使用FlowLayout作为布局管理器
演示代码:
package com.chapter16;
import java.awt.Button;
import java.awt.Frame;
import java.awt.Panel;
import java.awt.TextField;
公共类测试面板{
publicstaticvoidmain (字符串[ ] args ) {
帧帧=new帧('我是标题');
frame.set location (50,150 );
frame.setsize (250,120 );
测试面板
面板面板=new panel (;
Panel.add(newtextfield(20 );
Panel.add(newbutton )“发送”);
将面板放入框架
frame.add (面板);
frame.setvisible(true;
}
}
* * * * * * * * * * * * * * * * * * * * scroll pane * * * * * * * * * * * * * * * * * * * * * * * * * * * *。
有滚动条的面板
将面板更改为ScrollPane后,单行文本框不再存在。 因为上面有按钮。
原因ScrollPane的缺省设置是BorderLayout边框布局。 如果添加时未指定添加元素的位置,则默认情况下添加到中间
将这两个组件添加到中心按钮时,它将覆盖单行文本框
演示代码:
package com.chapter16;
import java.awt.Frame;
导入Java.awt.scroll pane;
import java.awt.TextArea;
公共类测试滚动面板{
publicstaticvoidmain (字符串[ ] args ) {
帧帧=new帧('我是标题');
frame.set location (50,150 );
frame.setsize (250,120 );
测试面板
//scroll pane.scroll bars _ as _ needed根据缺省情况添加滚动条
scroll pane panel=new scroll pane (scroll pane.scroll bars _ always );
panel.add (新文本(5,20 );
//Panel.add(newbutton )“发送”);
将面板放入框架
frame.add (面板);
frame.setvisible(true;
}
}
* * * * * * * * * * * * * * * * *布局管理器* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *。
一.为什么要使用布局管理器
使用布局管理器,程序员不必主动调整控件的大小,布局管理器就能实现。 相当于适配器
否则,程序员就很麻烦逐个调整组件的大小
2 .如何设置容器的布局管理器
布局管理器中类的对象
容器对象. setlayout(newXXXlayout );
3 .常见布局管理器(6种) )。
1 .流量布局
文本的显示顺序是添加到流布局的顺序,就像输入txt或doc文档一样
默认情况下,Panel是流布局
2. BorderLayout边框布局
框架的默认值为边框布局
就像四个人打麻将一样
如果要添加五个或更多组件,请首先将组件添加到Panel中,然后将Panel添加到边框布局的容器中