实验七 基于SWING的图形用户界面GUI设计

合集下载

Swing图形用户界面(GUI)设计

Swing图形用户界面(GUI)设计
18
9.5 标签
JLabel常用的方法
• void setText(String text): 定义该组件所能显示的文字。 • void setIcon(Icon icon): 定义该组件所能显示的图形。 • void setIconTextGap(int gap):定义文字和图形间的距离,单位 为像素。 • void setHorizontalAlignment(int alignment): 设置标记内容的 水平对齐方式(LEFT,CENTER,RIGHT,LEADING和 TRAILING)。 • void setHorizontalTextPosition(int alignment): 设置标记内文 字相对于图形的水平位置 (LEFT,CENTER,RIGHT,LEADING和TRAILING)。 • void setVerticalAlignment(int alignment): 设置标记内容的垂 直对齐方式(TOP,CENTER和BOTTOM)。 • void setVerticalTextPosition(int alignment): 设置标记内文字相 对于图形的垂直对齐方式(TOP,CENTER和BOTTOM )。 19
6
例9-1
7
9.2 文本与字体
本章9.1节的“Hello World”程序中演示了默认字体字符 串的显示。 但是我们常常需要使用不同的字体,通过setFont()方法可 以改变字体。 可以根据字体名来指定字体。 想找出某个计算机上的可用字体,你可以通过调用 GraphicsEnvironment类的getAvaiilableFamilyNames 方法实现。 该方法返回包含所有可用字体名的字符串数组。 GraphicsEnvironment类描述了用户系统上的图形环境, 可以使用静态方法getLocalGraphicsEnviroment来得到 该类的一个实例。 下面是字体显示的例子:

Swing图形用户界面(GUI)设计

Swing图形用户界面(GUI)设计
第9章 Swing图形用户界面(GUI)设计 [内容提要] 本章讲述Java GUI的发展以及如何使用 强大的Java 2 Swing库进行GUI程序设计, 包括AWT和Swing的区别和联系、各种 常见组件和控件的使用。
1
9.1 Swing图形用户界面设计概述
SUN的AWT:Java处理图形用户界面的初始途 径。 AWT库处理图形的基本方法:把这些元素的创 建和行为交给目标平台上的本地GUI工具箱进 行处理。 理论上 “一次编写,随处运行”。 实际上“一次编写,随处调试”。 IFC(Internet Foundation Classes) Sun与Netscape合作开发出:Swing。
JMenuItem: 菜单项。 JPanel: 通用的轻量容器。 JPasswordField: 文本框(用来输入口令)。
4
JPopupMenu: 弹出式菜单。
JPopupMenu.Separator: 分隔线(弹出式菜单专用)。 JProgressBar: 进度条。 JRadioButton: 单选按钮。 JRadioButtonMenuItem: 单选菜单。 JScrollBar: 滚动条。
Swing的AWT关系
JApplet:ng.Applet的扩展版本。 JButton: 按钮或命令按钮。 JCheckBox: 复选框。 JCheckBoxMenuItem: 复选菜单项。 JComboBox: 组合框。 JComponent: Swing组件的基类。 JDialog: 对话框窗口的基类。 JLabel: 标签项。 JList: 列表框。 JMenu: 菜单。 JMenuBar: 菜单条。
8
例9-2
9
9.3 图形设计
Java 2D提供了和设备无关的坐标系统,它不仅 负责用户坐标和设备坐标的转换,还提供了一些 非常有用的二维绘图功能,包括几何图形、直线 式样、图像以及上一节的文本与字体处理。 一、Graphics2D Java2D的绘图环境是一个Graphics2D对象,他 源自于Graphics, 如果要使用Java2D的功能,需要将Graphics对象转 化为Graphics2D对象。

JAVA-SWING图形界面程序设计实验报告(附完整代码)

JAVA-SWING图形界面程序设计实验报告(附完整代码)

图形界面(GUI)程序设计一、课题内容和要求内容:设计和编写一个用于将人民币转换为等值的美元的程序,界面要求可以输入人民币的金额并可以得到转换后的结果。

要求:学习和理解JAVA SWING中的容器,部件,布局管理器和部件事件处理方法。

通过编写和调试程序,掌握JAVA图形界面程序设计的基本方法。

二、设计思路分析class RMBtoDollar:主类,调用主函数。

class change:设置界面,并通过界面上的事件触发实现汇率转换。

三、概要设计public class RMBtoDollar{public static void main(String[] args);}class change extends JFrame implements MouseListener { JLabel l1, l2,l3;JTextField tf1, tf2;JButton b;double RMB, Dollar;public change();public void mousePressed(MouseEvent e);public void mouseClicked(MouseEvent e);public void mouseEntered(MouseEvent e);public void mouseExited(MouseEvent e);public void mouseReleaseed(MouseEvent e);//鼠标释放时进行转换}四、详细设计import java.awt.*;import java.awt.event.*;import javax.swing.*;public class RMBtoDollar {public static void main(String[] args) {new change();}}class change extends JFrame implements MouseListener { JLabel l1, l2,l3;JTextField tf1, tf2;JButton b;double RMB, Dollar;public change() {//添加组件和设置布局l1 = new JLabel("人民币/元:");l2 = new JLabel("美元/dollar:");l3=new JLabel("(汇率:6.17)");tf1 = new JTextField(12);tf2 = new JTextField(12);b = new JButton("转换");add(l1);add(tf1);add(l2);add(tf2);add(l3);add(b);setLayout(new FlowLayout(FlowLayout.CENTER));setTitle("人民币转换为美元");setBounds(300, 300, 300, 150);setVisible(true);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);b.addMouseListener(this);//鼠标事件监视器}public void mousePressed(MouseEvent e) {if (tf2.getText() != null) {// tf2 test 默认初始设为空tf2.setText("");}}public void mouseClicked(MouseEvent e) {}public void mouseEntered(MouseEvent e) {}public void mouseExited(MouseEvent e) {}public void mouseReleased(MouseEvent e) {if (tf1.getText() != null) {// 检查tf1 test 是否为空try {// 取异常RMB = Double.parseDouble(tf1.getText());// 字符转为double型Dollar = RMB / 6.17;//转换tf2.setText("" + Dollar);// 显示} catch (Exception ex) {tf1.setText("");// 如果输入不是数字,设为空}}}}五、测试数据及其结果分析1正常输入:2输入字符串不能转为double型时清空输入框:3结果:输出正常。

JAVA_Session07 基于Swing的 GUI程序设计2.ppt

JAVA_Session07 基于Swing的 GUI程序设计2.ppt
低级事件: KeyEvent(一个键被按下或释放) MouseEvent(鼠标键被按下、释放、移动或拖动) MouseWheelEvent(鼠标滚轮被转动) FocusEvent(某个组件获得或失去焦点) WindowEvent(窗口状态被改变)
版本 1.0
课程 7
幻灯片 6,共 24 张
Java 编程语言
版本 1.0
课程 7
幻灯片 3,共 24 张
Java 编程语言
Java中的事件处理方式
• 委派式事件处理(delegation)----个别的组件 将整个事件处理委托给特定的对象,当该组 件发生指定的事件时,就通知所委托的对象, 由这个对象来处理这个事件。这个受委托处 理事件的对象称为事件监听对象(event listener)
事件处理相关概念
• 事件(Event) – 一个对象,它描述了发生什么 事情
• 事件源(Event source) – 产生事件的组件
• 事件处理方法(Event handler) – 能够接收、 解析和处理事件类对象、实现和用户交互的 方法
• 事件监听器(Event listener)-调用事件处理方 法的对象
版本 1.0
课程 7
幻灯片 15,共 24 张
Java 编程语言
事件处理类和产生事件的类的关系
• 直接在本类里处理事件:
public class Test implements ActionListener {
… Button b=new Button(“Cancel”); b.addActionListener(this); public void actionPerformed(ActionEvent e) {
传递

Java语言试验7图形用户界面

Java语言试验7图形用户界面

一、实验目的1、掌握Java图形界面程序设计的基本思想和步骤。

2、掌握AWT包和Swing包的基本使用方法和区别。

3、掌握容器和布局的概念和使用。

4、掌握图形界面程序的事件处理机制。

二、实验内容及步骤1、界面设计任务一:容器JFrame的使用写窗体源代码源代码:package t1;import javax.swing.JFrame;import java.awt.Color;import javax.swing.JButton;public class FirstWindow extends JFrame{public static final int WIDTH= 300;public static final int HEIGHT= 200;public FirstWindow(){super();setSize WIDTH, HEIGHT);setTitle"First Window Class");this.getContentPane().setBackground(Color.red);setDefaultCloseOperation(JFrame DO_^OTHI^G_O^_C£OSE);}public static void main(String args[]) { FirstWindow win1=new FirstWindow(); winl.setVisible(true);win1.setDefaultCloseOperation(EXIT_ON_ CLOSE);}}写应用程序创建FirstWindow窗体对象,并使其显示。

运行结果:(ij l2_i l-irst Window Class 一□任务二:布局管理器LayoutManager(l)FlowLayout布局管理器①FlowLayout布局管理器的简单应用实例,代码如下: 源代码:package t2;import java.awt.*;import javax.swing.*;public class TestFlowLayout {public static void main(String args[]){JFrame f= new JFrame();f.setLayout(new FlowLayout());//设置为FlowLayout 布局Button b1=new Button("OK");Button b2=new Button("Open");Button b3=new Button("Close");f.add(b1);//添加按钮b1f.add(b2);//添加按钮b2f.add(b3);//添加按钮b3f.setSize(300,100);f.setVisible(true); )private static void setLayout(FlowLayout flowLayout) { // TODO Auto-generated method stub))②编译运行程序,查看结果。

实验7 图形用户界面之swing组件的使用_实验报告

实验7 图形用户界面之swing组件的使用_实验报告
计算机科学与技术学院实验报告
学生姓名
***
学号
***
成绩
系(院)别
计算机科学与技术学院
专业
计算机科学与技术
班级
***
课程名称
Java程序设计
任课教师
李冰
实验日期
***
实验序号
7
实验名称
图形用户界面之swing组件的使用
实验室
软三实验室
实验台号
***
指导教师
李冰
一、实验目的
1、掌握JFrame类的使用方法。
2、掌握swing包内组件类的使用方法。
二、实验内容(详见实验内容文档)
1、编写一个Java应用程序,输入学生的姓名,选择性别、籍贯及文化程度,单击“确定”按钮显示学生信息,单击“取消”按钮可以重新输入或选择学生信息。(使用swing组件实现)
2、正确或错误。
3、为按钮添加动作监听器接口ActionListener。
4、实现ActionListener接口中的方法。
实验步骤:
……
五、实验结果(包括设计效果、测试数据、运行结果等)
此处书写实验的测试数据及运行结果,或程序的运行效果等。
六、实验小结(包括收获、心得体会、注意事项、存在的问题及解决问题的方法、建议等)
此处书写本次实验你的收获,本次实验你有什么心得体会,实验中存在的问题及解决方法,实验中的注意事项等。
七、附录(包括作品、流程图、源程序及命令清单等)
此处书写本次实验的源程序或流程图等。
1、实验环境
Java SE Development Kit
四、实验设计方案(包括实验步骤、设计方案、算法描述或流程图等)
设计方案:

第八章 基于swing的图形用户界面

第八章 基于swing的图形用户界面

18
8.2.4 布局管理器
容器中组件的布局通常由Layout Manager控制。 Layout Manager负责决定容器的布局策略及容器内 每个组件的大小。 每个容器都由一个缺省的Layout Manager ,可通过 setLayout( )方法改变。 Java提供的布局管理器: FlowLayout BorderLayout GridLayout CardLayout GridBagLayout Box Layout
13
JFrame
是放置其他 Swing 组件的顶级容器,JFrame 组件用于在 Swing 程序中创建窗体 构造函数: JFrame() JFrame(String Title) 其组件必须添加至内容窗格,而不是直接添加至 JFrame 对象, frame.getContentPane().add(b); 其他方法:
AWT(Abstract Window Tookit):
用来处理图形最基本的方式,包括用来创建Java GUI各种组件 和事件处理机制。
Swing包:是对AWT的扩展,提供了丰富的组件,并且提供了独
立于运行平台的GUI构造框架。不依赖于特定的系统平台,对外提 供多样化的组件及外观,并且保持外观风格的一致。
/*第一个参数表示组件的对齐方式,第二个参数是组件之间的 横向间隔,第三个参数是组件之间的纵向间隔,单位是象素。*/ //居左对齐,横向间隔和纵向间隔都是缺省值5个象素 //缺省的对齐方式居中对齐,横向和纵向间隔缺省为5个象素
20
BorderLayout Manager
是Window,Frame和Dialog的缺省布局管理器。 把容器分成5个区域:North,South,East,West和 Center,每个区域只能放置一个组件。如不指定组件的加入 部位,则默认加入到Center区。 各个区域的位置及大小如下图所示: 构造函数有:

JAVA实验报告 图形用户界面设计 GUI

JAVA实验报告 图形用户界面设计 GUI
在使用gui图形用户界面设计的过程中根据所需的控件加以编程即可好处是无需太多算法而且以上几个不同的窗体功能实现基本类似在本次实验中通过编写窗体控件熟悉了gui的设计和用法
实验报告
课程 专业班级 姓名
java 程序设计
实验项目 Leabharlann 内序号 学号图形用户界面成绩 指导教师 实验日期
2010-1-4
实验目的:
public Dial(JFrame frame,String title,boolean b){ super(frame,title,b); getContentPane().setLayout(new FlowLayout()); panel.add(text); panel.add(btn1); btn1.addActionListener(this); getContentPane().add(panel); pack(); } public void actionPerformed(ActionEvent event){ this.dispose(); } public String getSt(){ return text.getText(); } }
add(label); add(scr); } }
运行结果如图所示
2. 练习使用对话框。包括一个JLabel和两个JButton,按任何一个JButton都会产生一个输入对话框, 按确定后将输入内容在JLabel中显示出来
源代码如下: import javax.swing.*; import java.awt.*; import java.awt.event.*;
public class frameTest{ public static void main(String args[]){ CFrame frame=new CFrame("Frame Test"); Container pane=frame.getContentPane(); pane.add(new leftPanel(),BorderLayout.WEST); pane.add(new rightPanel(),BorderLayout.EAST); frame.pack();
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验七基于SWING的图形用户界面GUI设计
一、实验目的
1. 掌握如何使用布局管理器对组件进行管理。

2. 掌握图形用户界面基本组件窗口、按钮、文本框、选择框、滚动条等的使用方法
3. 熟悉Java 的事件处理机制,掌握焦点事件、鼠标事件和键盘事件的处理。

二、实验内容
1.设计一个Windows风格的日历表,通过表格组件和下拉列表组件进行日历的显示。

2.编写华容道智力游戏。

通过焦点事件控制人物的颜色,通过键盘事件和鼠标事件来实现人物的移动。

三、实验方案
1. 日历表
要求程序中有一个下拉列表,该列表添加了代表年份的选项,当用户在列表中选择某项后,程序通过表格显示某年各个月份的日历。

具体实验步骤由学生自行设计完成。

2. 华容道智力游戏
华容道是我们很熟悉的一个传统智力游戏。

要求首先编写一个按钮的子类,该子类创建的对象代表华容道中的人物。

通过焦点事件控制人物的颜色,当人物获得焦点时颜色为蓝色,当失去焦点时颜色为灰色。

我们通过键盘事件和鼠标事件来实现曹操、关羽等人物的移动,当人物上发生鼠标事件或键盘事件时,如果鼠标指针的位置是在人物的下方(也就是组件的下半部分)或按键盘上的“↓”键,该人物向下移动。

向左、向右和向上的移动原理类似。

具体实验步骤由学生自行设计完成。

四、实验提示
1.使用Jtable可以创建一个表格对象。

可以使用Jtable的构造方法Jtable(Object data[][],Object columnName[])创建表格,表格的视图将以行和
列的形式显示数组data每个单元中对象的字符串。

也就是说,表格视图中对应着data单元中对象的字符串表示。

参数columnName用来指定表格的列名。

用户在表格单元中输入的数据都被认为是一个Object对象,用户通过表格视图对表格单元中的数据进行编辑,以修改二维数组data中对应的数据。

在表格视图中输入或修改数据后,需按Enter键或用鼠标单击表格的单元格确定所输入或修改的结果。

当表格需要刷新显示时,让表格调用repaint()方法。

2.使用JcomboBox无参数构造方法可以创建一个不含有任何选项的下拉列表,该列表可以调用addItem(String item)添加选项。

注意:当下拉列表还没有包含任何选项时,不要给其注册ItemEvent时间监视器,否则程序运行时会抛出异常。

3.在处理鼠标事件时,程序经常关心鼠标在当前组件坐标系中的位置。

鼠标事件调用getX()方法返回触发当前鼠标事件时鼠标指针在事件源坐标系中的x坐标;鼠标事件调用getY()方法返回触发当前鼠标事件时鼠标指针在事件源坐标系中的y坐标;
4.组件可以触发焦点事件。

组件可以使用addFocustListener(FocusListener listener)方法增加焦点事件监视器。

当组件具有焦点监视器后,如果组件从无输入焦点变成有输入焦点或从有输入焦点变成无输入焦点都会触发FocusEvent事件。

创建监视器的类必须实现FocusListener接口,该接口有两个方法:public void focusGained(FocusEvent e)
public void focusLost(FocusEvent e)
当组件从无输入焦点变成有输入焦点触发FocusEvent事件时,监视器调用类实现的接口方法focusGained(FocusEvent e);当组件从有输入焦点变成无输入焦点触发FocusEvent事件时,监视器调用类实现的接口方法focusLost(FocusEvent
e)
5.当一个组件处于激活状态时,组件可以成为触发KeyEvent事件的事件源。

当某个组件处于激活状态时,用户敲击键盘上一个键就导致这个组件触发KeyEvent事件。

五、实验结果
编写源程序并上机调试通过,根据实验过程填写实验报告,并上交源程序代码。

相关文档
最新文档