JavaSwing界面设计(所有控件及示例)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
19
界面的基本组织方式
由JFrame创建初始的用户界面 由JPanel、JScrollPane、JTabbedPane、JSplitPane、 JInternalFrame、Box等创建中间容器 由基本组件类创建有关的组件 将基本组件按照某种布局添加到中间容器中,根据需 要可能会用到容器的嵌套 将中间容器按照某种布局添加到顶层容器中,形成满 足用户需求的操作界面
13
创建用户主窗口--JFrame
类 JFrame 是java.awt.Frame的子类
在Swing的组件中, JFrame 并不全是由Java编写的
是一种与平台关系比较密切的组件(Heavyweight component)
java.lang.Object | +--java.awt.Component | +--java.awt.Container | +--java.awt.Window | +--java.awt.Frame | +--javax.swing.JFrame
26
基本组件—按钮
按钮是常用的功能组件,表示按钮的类为JButton。
构造方法 JButton button1 = new JButton(“姓名”); ImageIcon ii = new ImageIcon(“java.gif”); JButton button2 = new JButton(ii); JButton button3 = new JButton(“姓名”,ii);
20
获得JFrame的容器并添加组件
Container con = getContentPane();
JPanel panel = new JPanel();
JButton butt = new JButton("Press Me"); panel.add(butt); con.add(panel);
Байду номын сангаас16
示例:直接使用JFrame创建
import javax.swing.*; public class FirstJFrame { public static void main(String[] args) { JFrame f = new JFrame(); f.setTitle("My First JFrame"); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setSize(300, 300); f.setVisible(true); }}
12
基本组件
JLabel JButton、JCheckBox、JRadioButton JList、JComboBox JTextField、JPasswordField、JTextArea JToolBar、JToolTip、JProgressBar JSlider、JSpinner JFileChooser、JColorChooser JMenuBar、JMenu、JMenuItem、JCheckBoxMenuItem 、JRadioButtonMenuItem、JPopupMenu JTable JTree JOptionPane、JSeparator
Swing组件
JApplet
JDialog
JWindow
JFrame
7
用户界面
8
Java程序界面的构成
一个顶层容器(即主窗口)
顶层容器包含若干个中间容器
每个中间容器包含若干个基本组件 按照合理的布局方式将它们组织在一起 基本组件可响应发生在其上的事件
9
顶层容器
容器
容器是用来容纳和管理一组界面元素的对象。基本 组件必须被安排在某个容器中,否则就无法使用。
有边框容器 无边框容器
Container
JWindow
JPanel
JDialog
JFrame
JApplet
10
顶层容器
JFrame , JApplet , JDialog , JWindow
作用:创建初始界面,为其他组件提供一 个容器,以构建满足用户需求的操作界面
JFrame用来创建application,最常用的 JApplet用来创建applet JDialog用来创建对话框,常用 JWindow不常用
11
中间容器
JPanel , JScrollPane , JSplitPane , JTabbedPane 、JInternalFrame、Box 这些容器提供将有关组件按照某种布局组合在 一起,然后放入中间容器或顶层容器的功能 JPanel提供一个面板 JScrollPane是具有滚动条的窗格 JSplitPane是具有拆分功能的窗格 JTabbedPane是带有若干标签的分类窗格 JInternalFrame用于创建内嵌于JFrame中的内 部框架 Box提供创建横向/纵向盒子容器的功能
14
创建用户主窗口--JFrame
构造方法
JFrame() 创建无标题窗口。 JFrame(String s) 创建标题名字是字符串s的窗口。
例如:JFrame f = new JFrame(“Hello”);
常用方法
setTitle(String title) 设置JFrame标题文本 get/ setSize():获取/设置JFrame的大小。 add(Object a):将组件添加到JFrame中。 dispose()关闭JFrame并回收用于创建窗口的任何资源。 setVisible(boolean b)设置JFrame的可见性。 setLocation(x,y) 设置JFrame在屏幕的位置
3
用户界面概述
用户界面的类型
字符用户界面(CUI):例如,MS-DOS 图形用户界面(GUI):例如,Microsoft Windows
GUI的组件
组件 基本的控制组件,例如:Button、Label等。
容器:能容纳和排列组件的组件
组件继承它的父容器的性质
4
Menu Text Box
Label
17
示例:扩展JFrame创建
import javax.swing.*; public class SecondJFrame extends JFrame { public SecondJFrame() { super(“My Second JFrame”); setDefaultCloseOperation(EXIT_ON_CLOSE); setExtendedState(MAXIMIZED_BOTH); setVisible(true); } public static void main(String[] args) { SecondJFrame f = new SecondJFrame(); }}
15
创建用户主窗口--JFrame
常用方法
void setExtendedState(int); //设置扩展的状态,取值: NORMAL ICONIFIED MAXIMIZED_HORIZ MAXIMIZED_VERT MAXIMIZED_BOTH //最大化 void setDefaultCloseOperation(int); //设置默认的关闭时的操作,取值: DO_NOTHING_ON_CLOSE HIDE_ON_CLOSE DISPOSE_ON_CLOSE EXIT_ON_CLOSE //关闭
21
示例:学生信息管理系统
学生基本信息录入界面的设计
设计一个用户界面,用于输入学生的下列信息: 姓名 JTextField 密码 JPasswordField 性别 JRadioButton 党否 JCheckBox 年龄 JSpinner 颜色 JColorChooser 加分 JSlider 系别 JComboBox 选课 JList 确认 JButton 保存 JFileChooser 结果 JTextArea 要求输入完毕按“确认”将该学生的信息记录到“结果”中;按 “保存”将结果保存到一个指定的文件中;基本信息与结果界面 上下分布在一个JSplitPane中;屏幕下方显示当前时间
22
示例:学生信息管理系统
步骤一:由JFrame创建初始的用户界面,获得JFrame的容器,
添加中间容器JPanel JFrame f=new JFrame(); f.setTitle("学生信息管理系统"); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setExtendedState(MAXIMIZED_BOTH); //f.setSize(800,600); //f.setLocation(200,200); Container con=f.getContentPane(); JPanel pan=new JPanel(); con.add(pan); f.setVisible(true);
Swing
Swing是对AWT的扩展,它是Java 2中的一个标准包 组件都以J开头,例如:JFrame、JButton等。swing界 面在不同的平台上外观完全一样,真正做到平台独立 import javax.swing.*;
6
界面设计中常用组件类的体系结构
java.lang.Object java.awt.Component java.awt.Container java.awt.Panel java.applet.Applet java.awt.Window java.awt.Dialog javax.swing.JComponent java.awt.Frame
18
设置JFrame的图标
相关类
a)
图标类:javax.swing.ImageIcon
b) 图像类:java.awt.Image 创建图标和图像对象 a) ImageIcon ii = new ImageIcon(“x.gif”); b) Image image = ii.getImage(); 设置 setIconImage(image);
界面设计
张蕾 zhanglei@ujn.edu.cn
1
主要内容
概述
用户界面
组件介绍
布局管理
事件处理
菜单和表格
2
本章基本要求
了解AWT和Swing
熟悉4个顶层容器 掌握JFrame 熟悉常用的中间容器 会对组件进行布局
熟悉常用基本组件的创建和操作
会设置组件的颜色和字体 会处理组件上发生的事件 会创建菜单和表格
23
基本组件
24
基本组件—标签
标签
标签(JLabel)是最简单的组件,用于显示单行静态文本。 用户只能查看其内容而不能对其进行修改。
标签类没有事件响应。 构造方法
JLabel label1 = new JLabel(“姓名”); ImageIcon ii = new ImageIcon(“java.gif”); JLabel label2 = new JLabel(ii); JLabel label3 = new JLabel(“姓名”,ii,JLabel.CENTER);
标签内容一般不需要改变,但也可以使用setText和 setIcon方法进行改变 例如当使用同一标签显示不同的图片时,就可使用 setIcon方法实现
25
示例:学生信息管理系统
步骤二:添加标签(要录入的基本信息的名称)
JFrame f=new JFrame(); …… Container con=f.getContentPane(); Jpanel pan=new JPanel(); JLabel l_xm=new JLabel("姓名"); pan.add(l_xm); JLabel l_xb=new JLabel("性别"); pan.add(l_xb); …… con.add(pan); f.setVisible(true);
Combo Box List Box
Frame Window
Check Box Radio Button
Button
5
基本概述
AWT
AWT(Abstract Window Toolkit)是在Swing出现之前 用来设计界面的工具包 用awt包中的类创建的用户界面在不同的操作平台上有 不同的表现。使用不灵活 import java.awt.*;