实验五 图形用户界面

合集下载

java实验5图形用户界面设计试验

java实验5图形用户界面设计试验

java实验5图形⽤户界⾯设计试验常⽤布局1)、流布局: FlowLayout 从左到右,⾃上⽽下⽅式在容器中排列,控件的⼤⼩不会随容器⼤⼩变化.容器.setLayout(new FlowLayout(FlowLayout.LEFT));2)、⽹格布局: GridLayout 按照指定⾏数与列数,将容器分成⼤⼩相等的单元格每个单元格放置⼀个控件. 不能将控件放在指定单元格 容器.setLayout(new GridLayout(3,4,10,15));3)、边界布局: BorderLayout 将容器分成东、西、南、北、中五个部分 容器.setLayout(new BorderLayout()); 窗⼝的内容⾯板默认布局就是边界布局。

容器.add(控件,BorderLayout.NORTH);4)、混合布局: 使⽤JPanel,将多个布局组合在⼀起使⽤5)、绝对布局 null: 以坐标定位 容器.setLayout(null); 每个控件在放置在容器之前,必须设置其边界 setBounds(x,y,width,height); btn.setBounds(10,100,30,60);常⽤事件1)、事件源 EventSource:能够触发事件控件如:JButton,JTextField,JFrame,JComboBox,....2)、事件 Event:ActionEvent,KeyEvent,WindowEvent,TextEvent,...3)、事件侦听者Listener(接⼝) ActionListener,WindowListener,...class A implements ActionListener{public void actionPerformed(ActionEvent e){....}}A lis=new A();4)、事件处理函数public void actionPerformed(ActionEvent e){....}事件流程:事件源触发事件-->事件源侦听者接收事件-->⾃动调⽤相应事件处理函数.实践编程1.在应⽤程序窗体中安排1个⽂本框,⼀个标签。

图形用户界面实验报告

图形用户界面实验报告

图形用户接口一、实验目的·了解嵌入式系统图形界面的基本编程方法·学习图形库的制作二、原理概述2.1 Frame Buffer显示屏的整个显示区域,在系统内会有一段存储空间与之对应。

通过改变该存储空间的内容达到改变显示信息的目的。

该存储空间被称为Frame Buffer,或显存。

显示屏上的每个点都与frame buffer里的一个像素对应。

显示屏可以用单色或彩色来显示。

单色用1位来表示,彩色有2、4、8、16、24、32等位色。

显示屏还有单屏模式和双屏模式。

2.2 Frame Buffer与色彩计算机反映自然界的色彩是通过RGB值来表示的。

像素的RGB值可以直接从Frame Buffer里得到,或是从调色板间接得到。

实验室的显示器为16位色,因此Frame Buffer里的每个单元为16位:高5位为R,中间6位为G,低5位为B。

2.3 LCD控制器LCD控制器是Frame Buffer与显示屏之间的一个中间部件,负责从Frame Buffer中提取数据,进行处理,并传输到显示屏上。

本实验用到的开发板处理器PXA270集成了LCD控制器,实验中用到的显示屏是16位的TFT LCD,像素分辨率为 640×480。

三、实验内容3.1Frame Buffer操作Frame Buffer的设备是/dev/fb。

Struct fb_var_screeninfo vinfo;Fd = open("/dev/fb",O_RDWR)ioctl(fd,FBIOGET_VSCREENINFO,&vinfo)来获取它的可变参数,其中包括显示器的色位,分辨率等信息(vinfo.bits_per_pixel、vinfo.xres、vinfo.yres)。

获得缓冲区首地址,调用方式为:unsignedchar*fbp=0;fbp=(unsigned char*)mmap(0,sreensize,\PROT_READ|PROT_WRITE,MAP_SHARED,fd,0);将显示缓冲区清零,memset(fbp,0,screensize),即可实现清屏。

Java图形用户界面实验报告

Java图形用户界面实验报告

西安邮电大学(计算机学院)课内实验报告实验名称:图形用户界面专业名称:计算机科学与技术班级:计科1405班学生姓名:高宏伟学号:04141152指导教师:刘霞林实验日期:2016.11.24一、实验目的了解图形用户界面基本组件窗口、按钮、文本框、选择框、滚动条等的使用方法,了解如何使用布局管理器对组件进行管理,以及如何使用Java 的事件处理机制。

二、实验要求1. 掌握使用布局管理器对组件进行管理的方法。

2. 理解Java 的事件处理机制,掌握为不同组件编写事件处理程序的方法。

3. 掌握编写独立运行的窗口界面的方法。

4. 掌握组件的使用方法。

5. 了解对话框的使用方法。

三、实验内容(一)算术测试。

✧实验要求:编写一个算术测试小软件,用来训练小学生的算术能力。

程序由3个类组成,其中Teacher类对象负责给出算术题目,并判断回答者的答案是否正确;ComputerFrame类对象负责为算术题目提供视图,比如用户可以通过ComputerFrame类对象提供的GUI界面看到题目,并通过该GUI界面给出题目的答案;MainClass是软件的主类。

✧程序模板:Teacher.javapublic class Teacher{ int numberOne,numberTwo;String operator="";boolean right;public int giveNumberOne(int n){ numberOne=(int)(Math.random()*n)+1;return numberOne;}public int giveNumberT wo(int n){ numberTwo=(int)(Math.random()*n)+1;return numberTwo;}public String giveOperator(){ double d=Math.random();if(d>=0.5)operator="+";elseoperator="-";return operator;}public boolean getRight(int answer){ if(operator.equals("+")){ if(answer==numberOne+numberTwo)right=true;elseright=false;}else if(operator.equals("-")){ if(answer==numberOne-numberTwo)right=true;elseright=false;}return right;}}ComputerFrame.javaimport java.awt.*;import java.awt.event.*;public class ComputerFrame extends Frame implements ActionListener { TextField textOne,textTwo,textResult;Button getProblem,giveAnwser;Label operatorLabel,message;Teacher teacher;ComputerFrame(String s){ super(s);teacher=new Teacher();setLayout(new FlowLayout());textOne=【代码1】 //创建textOne,其可见字符长是10textTwo=【代码2】 //创建textTwo,其可见字符长是10textResult=【代码3】 //创建textResult,其可见字符长是10operatorLabel=new Label("+");message=new Label("你还没有回答呢");getProblem=new Button("获取题目");giveAnwser=new Button("确认答案");add(getProblem);add(textOne);add(operatorLabel);add(textTwo);add(new Label("="));add(textResult);add(giveAnwser);add(message);textResult.requestFocus();textOne.setEditable(false);textTwo.setEditable(false);【代码4】//将当前窗口注册为getProblem的ActionEvent事件监视器【代码5】//将当前窗口注册为giveAnwser的ActionEvent事件监视器【代码6】//将当前窗口注册为textResult的ActionEvent事件监视器 setBounds(100,100,450,100);setVisible(true);validate();addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e) { System.exit(0);}});}public void actionPerformed(ActionEvent e){ if(【代码7】) //判断事件源是否是getProblem{ int number1=teacher.giveNumberOne(100);int number2=teacher.giveNumberTwo(100);String operator=teacher.givetOperator();textOne.setText(""+number1);textTwo.setText(""+number2);operatorLabel.setText(operator);message.setText("请回答");textResult.setText(null);}if(【代码8】) //判断事件源是否是giveAnwser{ String answer=textResult.getText();try{int result=Integer.parseInt(answer);if(teacher.getRight(result)==true){ message.setText("你回答正确");}else{ message.setText("你回答错误");}}catch(NumberFormatException ex){ message.setText("请输入数字字符");}}textResult.requestFocus();validate();}}MainClass.javapublic class MainClass{ public static void main(String args[]){ ComputerFrame frame;frame=【代码9】//创建窗口,其标题为:算术测试}}✧实验后的练习:1. 给上述程序增加测试乘、除的功能。

实验五 Java的图形用户界面

实验五 Java的图形用户界面

实验五Java的图形用户界面
一、实验目的与要求
1.掌握AWT包中常用组件的使用方法。

2.熟悉布局管理器的适用场合,采用布局管理器进行界面的布局。

二、实验内容
1.程序改错
下列程序都有三个错误,按题中的要求,纠正错误并调试程序。

(1)问题描述:下面程序执行时会发生错误,请修改并调试程序。

程序的功能是在屏幕上输出如图5-9所示的图案,图案中每个方格大小是20*20像素。

2、P258实验五程序改错第一题。

3、编程题:设计一个Applet程序sy5_2.java,界面如图5-13所示,其中有两个按钮,当输入完姓名和密码内容后,按“确认”按钮出现图5-14所示界面,当按下“重新输入”按钮,又回到图5-13所示界面。

提示:用两个面板组件,第一个面板放3个标签和两个文本域,第二个面板放两个按钮。

图5-13
图5-14。

python图形用户界面实验报告

python图形用户界面实验报告

python图形用户界面实验报告本实验主要是介绍Python图形用户界面(GUI)的基本概念和使用方法,包括使用Python 中的Tkinter模块创建GUI应用程序的基本结构、常用控件和事件处理方式。

一、实验目的1.掌握Python图形用户界面(GUI)的基本概念和使用方法。

2.学习使用Python中的Tkinter模块创建GUI应用程序。

3.了解在Tkinter中使用控件和事件处理方式。

二、实验内容1.创建基本的GUI应用程序Python的Tkinter模块提供了一系列GUI控件,如Label、Button、Entry、Canvas、Menu等。

下面我们将介绍如何使用Tkinter创建一个基本的GUI应用程序。

代码如下:```from tkinter import *#创建主窗口root = Tk()#设置窗口标题root.title("我的第一个GUI程序")#设置窗口大小(宽x高)root.geometry('400x300')# 创建一个Label控件label = Label(root, text="欢迎来到Python世界!")# 将Label控件添加到主窗口label.pack()#进入消息循环root.mainloop()```上述代码中,我们首先导入了Tkinter模块,然后创建了一个名为root的主窗口。

接下来,我们设置了窗口的标题和大小,并创建了一个Label(标签)控件,文本为“欢迎来到Python 世界!”并将其添加到主窗口。

最后,我们调用root.mainloop()方法以便程序能够执行GUI循环。

2.GUI控件的使用下面介绍一些常用的Tkinter控件的用法。

其中,控件的属性和方法的详细说明可参考Python 官方文档或其它相关资料。

Label(标签)控件Label控件用来显示文本或图像。

如下是一个Label控件的例子:```label = Label(root, text="Hello, world!")label.pack()```Button(按钮)控件Button控件用来响应用户点击事件。

java图形用户界面实验报告

java图形用户界面实验报告

java图形用户界面实验报告Java图形用户界面实验报告一、引言图形用户界面(Graphical User Interface,简称GUI)是现代软件开发中不可或缺的一部分。

通过GUI,用户能够直观地与程序进行交互,提高了软件的易用性和用户体验。

本实验旨在通过使用Java编程语言,实现一个简单的GUI应用程序,并介绍相关的技术和方法。

二、实验目标本实验的目标是设计并实现一个简单的GUI应用程序,要求具备以下功能:1. 显示一个窗口,并在窗口中心显示一个标签;2. 在窗口中添加一个按钮,并实现按钮的点击事件;3. 当按钮被点击时,标签的文本发生变化。

三、实验过程1. 环境准备在开始实验之前,需要确保已经安装了Java开发环境(JDK)和集成开发环境(IDE),例如Eclipse或IntelliJ IDEA。

2. 创建GUI应用程序首先,创建一个Java项目,并创建一个名为"GUIApplication"的类。

在该类中,引入Java的GUI库,并继承JFrame类,实现一个窗口。

3. 设计窗口布局在窗口的构造方法中,设置窗口的标题、大小和关闭方式。

然后,创建一个JPanel对象,并将其添加到窗口中。

在JPanel中,使用布局管理器(例如FlowLayout或GridBagLayout)来安排组件的位置和大小。

4. 添加标签和按钮在JPanel中,创建一个JLabel对象,并设置其文本和位置。

然后,创建一个JButton对象,并设置其文本和点击事件。

在点击事件中,通过修改JLabel的文本来实现标签内容的变化。

5. 运行程序完成以上步骤后,编译并运行程序。

将会显示一个窗口,其中包含一个标签和一个按钮。

当按钮被点击时,标签的文本会发生变化。

四、实验结果经过以上步骤,成功实现了一个简单的GUI应用程序。

运行程序后,窗口显示如下图所示:(插入程序运行截图)在窗口中心显示了一个标签,标签的文本为"Hello, GUI!"。

实验五 事件驱动与图形用户界面

实验五 事件驱动与图形用户界面

实验五事件驱动程序设计和图形用户界面(上课被教师验收的同学不用提交实验结果,并注意在教师处签名。

未完成的同学请提交实验结果,即将程序直接粘贴至本DOC文件,并在邮件名的标题中注明:学号+姓名+实验四)通知:下次课(16周为最后一次讲课,17周为最后一次实验。

讲课会涉及考试与复习内容,请务必到场,将签到并点名。

请互相通知!1.请指出下面代码的错误:2.下面的说法为真还是为假?(1)按钮可触发WindowsEvent。

(false)A WindowEvent is generated by an instance of the Window class or its subclass. JButtonis not a subclass of Window, therefore, it cannot generate the WindowEvent.JButton can generate MouseEvent and ActionEvent.(2)按钮可触发MouseEvent。

(true)(3)一个源可以有多个监听器,一个监听器可以监听多个源。

(true)(4)一个源可以是自身的监听器。

(true)(5)修饰符public、private和static可以用在内部类吗?(true)a: 1.拼写错误javax.swing2.缺少对java.awt.Event.*;的调用3.拼写错误actionPerformed(ActionEvent e)4.jbtOk是在Test()中定义的,不能直接在Listener.actionPerformed(ActionEvent e)中使用b: 1.Test()中定义的jbtOK必须是final型的2 .下面的说法为真还是为假?(1) 按钮可触发WindowsEvent。

T(2) 按钮可触发MouseEvent。

F(3) 一个源可以有多个监听器,一个监听器可以监听多个源。

实验五_图形用户界面的设计与实现

实验五_图形用户界面的设计与实现
实验报告
课程名称
面向对象程序设计
实验名称
实验五图形用户界面的设计与实现
日期
201
学ห้องสมุดไป่ตู้学号
B
姓名
班级
B
实验目的:
通过本次实验,要求学生能进一步掌握图形用户界面的设计方法。
实验条件:
电脑一台、能上网查阅资料。
1.完成图书管理系统登陆界面和主界面的设计,完成图书管理系统的基本框架设计。
源代码:
实验结果:
登录界面:
主界面:
实验总结(结论或问题分析):
这次实验主要对图形用户界面进行了练习,在老师给的代码的基础上进行了完善,加深了对图形界面的了解。
实验成绩
任课教师签名

JAVA图形用户界面试验报告

JAVA图形用户界面试验报告

JA V A实验报告实验目的:学习组件布局和组件事件的处理。

实验要求:编写程序,实现成绩的查询和排序。

具体要求为:①选择合适的布局管理设计美观的界面,包含成绩输入、成绩查询、成绩排序功能。

②成绩输入:从界面上输入学生的学号和成绩,点击“确认”按钮进行保存。

③成绩查询:输入学生的学号,点击“查询”按钮,显示该学生成绩。

④成绩排序:点击“排序”按钮,将按成绩从高到低显示学生的学号和成绩。

实验步骤:①定义一个类表示学生,包含学号和成绩两个域;②用java提供的V ector或Arrays类(也可使用自定义类)存储输入的学生信息,使用java 提供的方法或使用自定义方法实现学生信息的查询和排序;③界面设计,可考虑以下的界面设计策略:ⅰ在界面上放置成绩查询、成绩输入、成绩排序三个按钮和一个文本区:按下成绩输入按钮则弹出一个窗口,该窗口上有学号输入和成绩输入文本框,输入完毕关闭窗口后输入的学生信息出现在文本区中;按下成绩查询按钮弹出一个与成绩输入类似的窗口,在学号文本框中输入学号后,在成绩文本框中立即显示成绩;按下排序按钮,在文本区中显示排序后的结果。

ii 可在界面上用三个Panel分别实现查询、输入、排序功能,分别在各Panel上放置按钮、文本框、文本区等控件。

此步中,要求学生会使用各种布局管理器设计美观的界面。

④为程序添加事件处理机制。

ⅰ为查询、输入、排序按钮添加事件处理;ⅱ为学号、成绩输入文本框添加事件处理;ⅲ为窗口的关闭添加事件处理。

import java.awt.*;import java.awt.event.*;public class jj extends Frame implements ActionListener {private Button add=new Button("添加");private Button search=new Button("查询");private Button up=new Button("排序");private Label snLabel=new Label("学号");private Label gLabel=new Label("成绩");private List list=new List();private TextField taskInput =new TextField();public class WindowsCloser extends WindowAdapter{public void WindowClosing (WindowEvent we){System.exit(0);}}private viod setup(){Panel buttons=new Panel();buttons.setLayout(new FlowLayout());buttons.add(add);buttons.add(search);buttons.add(up);Panel input =new Panel();input.setLayout(new BorderLayout());input.add("West",snLabel);input.add("Center",taskInput);input.add("west",snLabel);input.add("Center",taskInput);Panel top=new Panel();top.setLayout(new GridLayout(2,1));}public TaskList(){}public void actionperformed(ActionEvent ae) {}public static void main (String args[]){List t1 =new List();}}。

图形用户界面和文件的实验报告

图形用户界面和文件的实验报告

一.实验目的及实验环境1)掌握File类及其API函数2 ) 熟练掌握java文件读写操作3)掌握字节流,字符流,对象流二.实验内容1.编写文件复制功能,用命令行方式提供源文件名和目标文件名2.编写一个程序,从键盘输入5个学生的信息(包含学号、姓名、3科成绩),统计各个学生的总分,然后将学生信息和统计结果存入二进制数据文件STUDENT.DAT文件中;3.编写一个程序,从上题中建立的STUDENT.DAT文件中读取数据,按学生的总分递减排序后,显示前3个学生的学号、姓名和总分;4.编写一个程序,从键盘输入5个学生的信息(包含学号、姓名、3科成绩),统计各个学生总分,然后将学生信息和统计结果存入文本文件STUDENT.TXT 中;5.编写一个程序,从上题中建立的STUDENT.TXT文件中读取数据,按学生的总分递减排序后,显示前3个学生的学号、姓名和总分;三.方案设计1. 输入源文件时须从所存在的目录下写,而输入目标文件时需要判断,如果不存在就创建,然后用while语句实现读写复制。

创建一个类FileCopyTest,使用JUNIT4测试方法执行。

2. 创建一个学生类Student,实现Serializable接口,在DAT文件中,文件使用二进制的方式保存,为乱码,需要使用ObjectInputStream和ObjectOutputStream两个类完成读写;在TXT文件中,文件使用UTF-8编码,中文不会乱码,此时需要使用BufferedWriter和BufferedReader完整文件读写;四.测试数据及运行结果1.正常测试数据(3组)及运行结果;2.非正常测试数据(2组)及运行结果。

五.总结1.实验过程中遇到的问题及解决办法;保存及读取对象的数据时,应该在流中以对象为单位进行传输,这时就要用到对象流,先实现Serializable接口,创建InputStream流,及对象输入流或对象输出流完的美的程序需要多次调整,比如说异常的处理需要处理Runtime异常和代码中抛出的异常;2.对设计及调试过程的心得体会。

java图形用户界面设计实验总结

java图形用户界面设计实验总结

Java图形用户界面设计实验总结1. 简介本文档是关于Java图形用户界面(GUI)设计实验的总结。

我们将对Java GUI 的基本概念和原理进行介绍,并提供一些实验总结和经验分享。

Java GUI是一种用于创建用户友好界面的技术,在开发各种应用程序时非常重要。

2. Java GUI的基本概念和原理2.1 Java GUI库Java提供了一些库来帮助开发人员创建GUI应用程序。

其中最常用的库是Java Swing和JavaFX。

Swing提供了一组类和方法,用于创建和管理各种GUI组件,例如按钮、文本框、标签等。

JavaFX是一个更现代化的GUI库,提供了更好的图形渲染和动画效果。

2.2 GUI组件Java GUI应用程序通常由一系列GUI组件组成。

最常见的GUI组件包括:•按钮(Button):用于触发各种操作;•标签(Label):用于展示文本信息;•文本框(TextField):用于输入文本;•列表框(ListBox):用于显示一个选项列表;•组合框(ComboBox):同时兼具列表框和文本框的功能;•复选框(CheckBox):用于选择一个或多个选项;•单选按钮(RadioButton):用于从一组选项中选择一个。

2.3 事件处理Java GUI应用程序通常需要对用户的操作做出响应。

为此,需要使用事件处理机制。

事件处理机制通常由两个主要部分组成:事件源和事件监听器。

事件源可以是任何GUI组件,例如按钮、文本框等。

事件监听器是一个类,用于响应和处理特定事件。

3. 实验总结和经验分享在完成Java GUI设计实验时,我得出了以下总结和经验分享:•熟悉GUI组件的使用:在开始实验之前,我花了一些时间学习和理解不同GUI组件的使用方法。

这让我能够更好地选择和使用适当的组件来实现我的GUI应用程序。

•构建用户友好的界面:一个好的GUI应用程序应该是用户友好的。

在实验中,我学会了如何通过合理的布局、适当的颜色和字体选择来创建一个用户友好的界面。

图形用户界面实验报告。

图形用户界面实验报告。

实验 SWT图形用户界面1.实验目的(1)了解SWT 程序开发步骤。

(2)掌握SWT常用组件的使用。

(3)掌握SWT 的事件处理。

2.实验内容实验题1完成图3.8 所示图形界面的制作。

要求“查询结果”用group组件。

图3.8数据查询界面实验代码:(在包中)package ;public class Example {public static void main(String[] args) {Window win =new Window();win.setTitle("按学号查询");}}package ;import javax.swing.*;public class Window extends JFrame {JTextField textnum1,textnum2,textname,textage;JLabel p1,p2,p3,p4;JButton enter,reverse;public Window(){init();setBounds(400,150,500,500);setVisible(true);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setResizable(false);}void init(){setLayout(null);p1=new JLabel("请输入学号:");p2=new JLabel("学号:");p3=new JLabel("姓名:");p4=new JLabel("年龄:");add(p1);add(p2);add(p3);add(p4);p1.setBounds(50,50,100,100);p2.setBounds(50,180,100,100);p3.setBounds(50,230,100,100);p4.setBounds(50,280,100,100);textnum1 =new JTextField(10);textnum2=new JTextField(10);textname =new JTextField(10);textage =new JTextField(10);add(textnum1);add(textnum2);add(textname);add(textage);textnum1.setBounds(150,90,200,20);textnum2.setBounds(200,220,150,20);textname.setBounds(200,270,150,20);textage.setBounds(200,320,150,20);enter =new JButton("确定");reverse = new JButton("重置");add(enter);add(reverse);enter.setBounds(90,130,70,30);reverse.setBounds(300,130,70,30);}}运行结果如下如所示:实验题2 完成图3.9所示学籍管理主界面的设计与制作。

java实验报告5(图形用户界面)

java实验报告5(图形用户界面)

2012—2013学年第 1 学期合肥学院数理系实验报告课程名称:《面向对象程序设计》实验项目:图形用户界面实验类别:综合性□设计性√验证性□专业班级:10信息与计算科学班姓名:学号:实验地点:校内机房实验时间:2012.11.19 —2012.11.25指导教师:钱泽强成绩:一、实验目的掌握Java中图形界面设计的基本元素和方法,熟练使用常用组件设计图形界面,掌握布局管理器的使用,掌握事件的处理方法。

二、实验内容1、设计图形界面,掌握FlowLayout、BorderLayout、CardLayout、GridLayout布局管理器的使用,并掌握组件的精确定位方式;2、掌握事件处理的三种常见的实现方式:·通过主类创建监听器对象的实现方式;·通过自定义内部类创建监听器对象的实现方式;·在注册时通过匿名类直接创建监听器对象的实现方式。

3、设计图形用户界面的应用程序。

三、实验方案(程序设计说明)[题目1] 编写图形界面用户程序,采用事件处理的三种实现方法求一个数的平方。

1、在图形界面中提供“文本框、标签、按钮”,文本框用于输入数据,标签显示数据的平方,单击按钮可以实现求数据的平方;2、分别采用事件处理的三种方法实现。

[题目2] 编写图形界面用户程序,实现“幸运数”游戏。

要求如下:1、在图形界面用户程序中提供“按钮、标签”等组件;2、标签用于显示随机数,单击按钮可以改变随机数并实现对随机数的判断:若两数相等,则出现相等提示,否则出现不等提示。

四、实验程序和运行结果请附页记录正确的源程序五、实验总结六、教师评语及成绩1、求平方import javax.swing.*;import java.awt.*;import java.awt.event.*;//通过主类创建监听器对象class myFrame extends JFrame implements ActionListener{ JLabel l; JButton b; JTextField t;myFrame(JFrame f){ l=new JLabel("0"); b=new JButton("求平方"); t=new JTextField("0");f.setLayout(null);f.add(l); f.add(b); f.add(t);t.setBounds(1,1,60,20); b.setBounds(71,1,60,20); l.setBounds(141,1,60,20);b.addActionListener(this); }public void actionPerformed(ActionEvent e){ int x=Integer.parseInt(t.getText());int y=x*x; l.setText(Integer.toString(y)); }}//通过自定义内部类创建监听器对象class myFrame extends JFrame{ JLabel l; JButton b; JTextField t;myFrame(JFrame f){ l=new JLabel("0"); b=new JButton("求平方"); t=new JTextField("0");f.setLayout(null);f.add(l); f.add(b); f.add(t);t.setBounds(1,1,60,20); b.setBounds(71,1,60,20); l.setBounds(141,1,60,20); BHandler h=new BHandler();b.addActionListener(h); }private class BHandler implements ActionListener {public void actionPerformed(ActionEvent e){ int x=Integer.parseInt(t.getText());int y=x*x; l.setText(Integer.toString(y)); }}}//在注册时通过匿名类直接创建临听器对象class myFrame extends JFrame{ JLabel l; JButton b; JTextField t;myFrame(JFrame f){ l=new JLabel("0"); b=new JButton("求平方"); t=new JTextField("0");f.setLayout(null);f.add(l); f.add(b); f.add(t);t.setBounds(1,1,60,20); b.setBounds(71,1,60,20); l.setBounds(141,1,60,20);b.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){ int x=Integer.parseInt(t.getText());int y=x*x; l.setText(Integer.toString(y)); }});}}public class test {public static void main(String[] args) {JFrame jf=new JFrame("平方数"); jf.setBounds(100,100,400,300); jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);jf.setVisible(true);myFrame myf=new myFrame(jf); }}2、幸运数import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.util.Random;class myJFrame extends JFrame implements ActionListener{ private JButton jb;private JLabel [] jl;public myJFrame(JFrame f){ f.setSize(300,300);f.setLayout(new FlowLayout());jl=new JLabel[3];for(int i=0; i<3; i++){ jl[i]=new JLabel("*");f.add(jl[i]); }jl[2].setText("试一试");jb=new JButton("开始");jb.addActionListener(this);f.add(jb);}public void actionPerformed(ActionEvent e){ Random x=new Random();Random y=new Random();jl[0].setText(Integer.toString(x.nextInt(10)));jl[1].setText(Integer.toString(x.nextInt(10)));if (jl[0].getText().equals(jl[1].getText()))jl[2].setText("恭喜您");elsejl[2].setText("再试试");}}public class test{public static void main(String[] args) {JFrame f=new JFrame("我的窗口");f.setBounds(100,100,400,300);f.setVisible(true);f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); myJFrame m=new myJFrame(f); }}。

实验五 图形用户界面设计

实验五 图形用户界面设计
(3)熟练掌握直线、曲线、矩形、椭圆、多边形的绘制方法。
(4)熟练掌握常用的布局管理器如:FlowLayout,BorderLayout,CardLayout,GridLayout和BoxLayout等的使用。
(5)熟练使用JButton、JCheckBox、JRadionButton、JList、JTextField及JTextArea等组件的使用及相关的事件相应方法
}
publicvoidactionPerformed(ActionEvent e){
if(e.getSource()==but[5])
{
but[1].setText("+");
}
if(e.getSource()==but[6])
{
but[1].setText("*");
}
if(e.getSource()==but[7])
报告提交日期
06.03.2016
(注意:内容写不下时可另附页。)
2.练习题
(1)获取当前JApplet的内容面板,设置this.getContnetPane()布局管理方式为:new GridLayout(2,1)
(2)在内容面板中添加两个JPanel jp1,jp2,且布局管理方式分别为new GridLayout(1,5)和new GridLayout(1,3)。
JButtonbut[] = {newJButton("1"),newJButton("+"),newJButton("4"),newJButton("="),
newJButton("5"),newJButton("+"),newJButton("*"),newJButton("OK")};

图形用户界面

图形用户界面

实验五 SWT图形用户界面1.实验目的(1)了解SWT 程序开发步骤。

(2)掌握SWT常用组件的使用。

(3)掌握SWT 的事件处理。

2.实验内容实验题1完成图3.8 所示图形界面的制作。

要求“查询结果”用group组件。

实验完整代码如下:import java.awt.EventQueue;import javax.swing.JFrame;import javax.swing.GroupLayout;import javax.swing.GroupLayout.Alignment;import javax.swing.JLabel;import javax.swing.JTextField;import ponentPlacement;import javax.swing.JSeparator;import javax.swing.JButton;public class ff {private JFrame frame;private JTextField textField;private JTextField textField_1;private JTextField textField_2;private JTextField textField_3;/*** Launch the application.*/public static void main(String[] args) {EventQueue.invokeLater(new Runnable() {public void run() {try {ff window = new ff();window.frame.setVisible(true);} catch (Exception e) {e.printStackTrace();}}});}/*** Create the application.*/public ff() {initialize();}/*** Initialize the contents of the frame.*/private void initialize() {frame = new JFrame("按学号查询");frame.setBounds(100, 100, 450, 422);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);JLabel lblNewLabel = new JLabel("\u8BF7\u8F93\u5165\u5B66\u53F7\uFF1A");textField = new JTextField();textField.setColumns(10);JLabel lblNewLabel_1 = new JLabel("\u67E5\u8BE2\u7ED3\u679C\uFF1A");JSeparator separator_1 = new JSeparator();JSeparator separator = new JSeparator();JLabel lblNewLabel_2 = new JLabel("\u5B66\u53F7\uFF1A");textField_1 = new JTextField();textField_1.setColumns(10);JLabel lblNewLabel_3 = new JLabel("\u59D3\u540D\uFF1A");textField_2 = new JTextField();textField_2.setColumns(10);JLabel lblNewLabel_4 = new JLabel("\u5E74\u7EA7\uFF1A");textField_3 = new JTextField();textField_3.setColumns(10);JButton btnNewButton = new JButton("\u786E\u5B9A");JButton btnNewButton_1 = new JButton("\u91CD\u7F6E");GroupLayout groupLayout = new GroupLayout(frame.getContentPane());groupLayout.setHorizontalGroup(groupLayout.createParallelGroup(Alignment.TRAILING).addGroup(groupLayout.createSequentialGroup().addContainerGap().addComponent(lblNewLabel_1).addContainerGap(148, Short.MAX_VALUE)).addGroup(groupLayout.createSequentialGroup().addContainerGap(20, Short.MAX_VALUE).addComponent(separator_1, GroupLayout.PREFERRED_SIZE, 425, GroupLayout.PREFERRED_SIZE).addContainerGap()).addGroup(groupLayout.createSequentialGroup().addContainerGap(GroupLayout.DEFAULT_SIZE,Short.MAX_VALUE).addComponent(separator, GroupLayout.PREFERRED_SIZE, 435, GroupLayout.PREFERRED_SIZE).addContainerGap()).addGroup(groupLayout.createSequentialGroup().addGap(76).addGroup(groupLayout.createParallelGroup(Alignment.LEADING).addGroup(groupLayout.createParallelGroup(Alignment.TRAILING).addComponent(lblNewLabel_3).addComponent(lblNewLabel_2)).addComponent(lblNewLabel_4)).addGap(41).addGroup(groupLayout.createParallelGroup(Alignment.LEADING, false).addComponent(textField_2).addComponent(textField_3).addComponent(textField_1,GroupLayout.DEFAULT_SIZE, 123, Short.MAX_VALUE)).addContainerGap(158, Short.MAX_VALUE)).addGroup(Alignment.LEADING,groupLayout.createSequentialGroup().addGap(104).addComponent(btnNewButton).addGap(56).addComponent(btnNewButton_1).addContainerGap(135, Short.MAX_VALUE)).addGroup(Alignment.LEADING,groupLayout.createSequentialGroup().addGap(81).addComponent(lblNewLabel).addGap(8).addComponent(textField, GroupLayout.PREFERRED_SIZE, 125, GroupLayout.PREFERRED_SIZE).addContainerGap(159, Short.MAX_VALUE)));groupLayout.setVerticalGroup(groupLayout.createParallelGroup(Alignment.LEADING).addGroup(groupLayout.createSequentialGroup().addGap(43).addGroup(groupLayout.createParallelGroup(Alignment.TRAILING, false).addComponent(lblNewLabel).addComponent(textField)).addGap(18).addComponent(separator_1, GroupLayout.PREFERRED_SIZE, 0, GroupLayout.PREFERRED_SIZE).addPreferredGap(ComponentPlacement.RELATED).addGroup(groupLayout.createParallelGroup(Alignment.BASELINE).addComponent(btnNewButton_1).addComponent(btnNewButton)).addGap(35).addComponent(lblNewLabel_1).addPreferredGap(ComponentPlacement.RELATED).addComponent(separator, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE).addGap(26).addGroup(groupLayout.createParallelGroup(Alignment.BASELINE).addComponent(lblNewLabel_2).addComponent(textField_1,GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)).addGap(24).addGroup(groupLayout.createParallelGroup(Alignment.BASELINE).addComponent(lblNewLabel_3).addComponent(textField_2,GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)).addGap(18).addGroup(groupLayout.createParallelGroup(Alignment.BASELINE).addComponent(lblNewLabel_4).addComponent(textField_3,GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)).addGap(41)));frame.getContentPane().setLayout(groupLayout);}}运行结果为:实验题2 完成图3.9所示学籍管理主界面的设计与制作。

五 GUI图形用户界面__2008

五 GUI图形用户界面__2008

设计工作区 区
工作区
五 GUI图形用户界面
§5.3 用户控件的制作
用户控件列表: 用户控件列表:
对象选择按钮,用来选取工作区上分布的控件。 对象选择按钮,用来选取工作区上分布的控件。 单功能按键,按下操作代表一定的功能实现。 单功能按键,按下操作代表一定的功能实现。 双位按键,代表“ ”“关 两种状态。 双位按键,代表“开”“关”两种状态。 互斥选择按钮,多个选项互斥选择时使用。 互斥选择按钮,多个选项互斥选择时使用。 互容选择按钮,同时选中多个选项时使用。 互容选择按钮,同时选中多个选项时使用。 编辑文本框,可以自由输入字符, 编辑文本框,可以自由输入字符,编辑字符串 静态文本框,用于显示注释说明用文字,不可编辑。 静态文本框,用于显示注释说明用文字,不可编辑。 滑动块,利用游标滑动,可以获取不同的值。 滑动块,利用游标滑动,可以获取不同的值。 控件区域框,用于对控件区域进行标识。 控件区域框,用于对控件区域进行标识。 列表框,提供多个可供选择的选项,可以互容选择。 列表框,提供多个可供选择的选项,可以互容选择。 弹出框,带有多个选项,只能选择其中一项。 弹出框,带有多个选项,只能选择其中一项。 轴对象,用来显示图形。 轴对象,用来显示图形。
五 GUI图形用户界面
Units或FontUnits可选择:inches(英寸 ,centimeters 或 可选择: 英寸), 可选择 英寸 (厘米 , normalized(按比例缩放 ,points(点阵 , pixels 厘米), 按比例缩放), 点阵), 厘米 按比例缩放 点阵 (像素 , characters(字符 。如果选择 像素), 字符)。 像素 字符 如果选择normalized,那么当 , resize设为 时,控件或字体大小随着整个窗口的缩放而改 设为on时 设为 变。 可以是left, center, 水平对齐方式 HorizontalAlignment可以是 可以是 right。 。 控件句柄Tag有默认值,建议修改为带有具体含义的字 控件句柄 有默认值, 有默认值 符串,以增加程序可读性和方便回调函数调用。 符串,以增加程序可读性和方便回调函数调用。

实验五 图形用户界面设计

实验五   图形用户界面设计

实验五图形用户界面设计(2)一、实验目的(1) 掌握编写独立运行的窗口界面的方法。

(2) 了解 Java Swing 组件的使用方法。

(3) 理解 Java 的事件处理机制,掌握为不同组件编写事件处理程序的方法。

(4) 掌握常用图形用户界面的设计方法。

二、实验要求通过实验理解java的事件处理机制,能够对常见事件AcitonEvent, WindowEvent, KeyEvent, MouseEvent进行处理。

三、实验内容(一)建立独立运行的窗口界面并使用匿名类处理事件最常使用的容器是窗口,在Java 中窗口由Frame或JFrame 类生成,编写Demo5_21.java 程序文件。

程序功能:创建一个具有关闭功能的空白窗口。

源代码如下:import java.awt.*;import java.awt.event.*;public class Demo5_21{Demo5_21(){Frame f=new Frame("初始窗口");f.setSize(350,200);f.setVisible(true); //为窗口添加窗口事件适配器f.addWindowListener(new WindowAdapter(){ //内部匿名类关闭窗口,实现方法windowClosingpublic void windowClosing(WindowEvent e){System.exit(0);}});}public static void main(String[] args) {new Demo5_21();}}编译并运行程序[思考] 导入包时,可否将import java.awt.event.*;省去不写。

为什么?(二)使用Swing 组件、了解事件处理机制在Java 中,能够实现图形用户界面的类库有两个:java.awt 和javax.swing。

前者称为抽象窗口工具库AWT(Abstract Windows Toolkit),后者是Java 基础类库JFC(Java Foundation Classes)的一个组成部分,它提供了一套功能更强、数量更多、更美观的图形用户界面组件。

java图形用户界面实验报告参考模板

java图形用户界面实验报告参考模板

验报告南京工程学院实验报告课程名称JAVA基础实验项目名称图形用户界面设计实验学生班级实验学生姓名学号同组学生姓名无实验时间2012年11月实验地点验报告实验成绩评定指导教师签字年月日验报告一、实验目的和要求1.目的:掌握java AWT及Swing组件的使用方法,包括窗口、框架、对话框、布局方式、面板、文本编辑器、按钮、组合框等,合理利用委托事件处理模型,掌握不同组件,不同事件的事件处理方法,设计出能够响应事件的java图形用户界面。

2.要求:设计图形用户界面,事件处理,异常处理并弹出对话框,提示重新输入信息。

二、实验题目验证哥德巴赫猜想,添加图形用户界面三、实验方法与步骤(需求分析、算法设计思路、流程图等)1.添加图形用户界面import java.awt.*;import java.awt.event.*;import javax.swing.*;public class GDBH extends Frame implements ActionListener //窗口框架响应单击事件,利用awt组件设计框架{private Button button; //按钮private TextField text1; //文本行验报告private TextArea text2; //文本区public GDBH()验报告{super("验证哥德巴赫猜想"); //设置框架窗口标题this.setBounds(450, 200, 350, 400); //设置框架的位置和尺寸this.setResizable(false); // 设置框架大小不可改变this.setBackground(Color.lightGray); // 设置窗口背景颜色this.setLayout(new FlowLayout()); // 默认窗口流布局中对齐this.add(new Label("输入一个整数"));text1=new TextField("",20);this.add(text1);button=new Button("验证哥德巴赫猜想");this.add(button);button.addActionListener(this); //为按钮注册单击事件监听器,委托当前对象处理事件this.setLayout(new FlowLayout()); //默认中对齐text2=new TextArea(20,25);text2.setEditable(false);this.add(text2);this.setVisible(true); //设置组件可见this.addWindowListener(new WinClose()); // 为框架注册窗口事件监听器,委托WinClose对象处理事件验报告}2.实现单击事件和窗口事件监听器接口验报告public void actionPerformed(ActionEvent e) //单击事件处理方法,实现ActionListener接口{String str =text1.getText(); //获得文本行的字符串try{long num = Long.parseLong(str); // 将字符串转化成长整形text2.setText(yz(num));}catch(NumberFormatException n){JOptionPane.showMessageDialog(this, "\""+str+"\"字符串不能转换成整数,请重新输入!!");return;}}class WinClose implements WindowListener //实现窗口事件监听器接口{public void windowClosing(WindowEvent e) // 窗口关闭事件处理方法验报告{System.exit(0); //程序运行结束验报告}public void windowOpened(WindowEvent e) {}public void windowClosed(WindowEvent e) {}public void windowIconified(WindowEvent e) {}public void windowDeiconified(WindowEvent e) {}public void windowActivated(WindowEvent e) {}public void windowDeactivated(WindowEvent e) {}}3.异常处理若文本行中的字符串不能转化成长整形,将弹出对话框“字符串不能转换成整数,请重新输入!!";另外如果所输入的整数为小于等于2或大于2小于等于5也会弹出一个对话框“输入错误!必须是大于2的偶数或大于5的奇数!!”(该窗口代码设置在yz()函数中)。

实验6.图形用户界面设计

实验6.图形用户界面设计

实验6.图形⽤户界⾯设计实验6. 图形⽤户界⾯设计⼀、实验⽬的1. 掌握图形对象属性的基本操作;2. 掌握菜单及对话框设计、建⽴控件对象的⽅法。

⼆、实验环境⼀、计算机⼆、 matlab7.x 三、实验说明三、正确操作,认真观察;四、实验学时:2学时;五、学会使⽤help ;六、保存整理实验结果,提交实验报告。

四、实验内容1.设计如教材P374 图1所⽰的菜单,并在此基础上增加选项:可以改变曲线的颜⾊,可以改变窗⼝背景颜⾊。

2.(选做)采⽤图形⽤户界⾯,从键盘输⼊参数a 、b 、n 的值,考察参数对极坐标曲线)cos(θρn b a +=的影响。

五、实验程序及结果第⼀题的代码和图形:第⼆题的代码和图形:hf=figure('menubar','none','name','图形演⽰',...'numbertitle','off');set(gcf,'unit','normalized','posi',[0.2,0.3,0.55,0.36]);axes('posi',[0.05,0.15,0.55,0.7]);uicontrol(gcf,'style','text','unit','normalized',...'posi',[0.65,0.85,0.1,0.1],'string','参数a','horizontal','center');uicontrol(gcf,'style','text','unit','normalized',...'posi',[0.65,0.65,0.1,0.1],'string','参数b','horizontal','center');uicontrol(gcf,'style','text','unit','normalized',...'posi',[0.65,0.45,0.1,0.1],'string','参数n','horizontal','center');ha=uicontrol(gcf,'style','edit','back','w',...'unit','normalized', 'posi',[0.80,0.85,0.15,0.1]);hb=uicontrol(gcf,'style','edit','back','w',...'unit','normalized','posi',[0.80,0.65,0.15,0.1]);hn=uicontrol(gcf,'style','edit','back','w',...'unit','normalized','posi',[0.80,0.45,0.15,0.1]);uicontrol(gcf,'style','push','unit','normalized',...'posi',[0.64,0.15,0.15,0.15],'string','绘图','call',comm); uicontrol(gcf,'style','push','unit','normalized',... 'posi',[0.83,0.15,0.15,0.15],'string','关闭','call','close(gcf)');comm=['a=str2num(get(ha,''string''));','b=str2num(get(hb,''str ing''));',...'n=str2num(get(hn,''string''));','theta=0:0.01:2*pi;',... 'rho=a*cos(b+n*theta);','polar(theta,rho);'];七、实验⽬的六、理解matlab绘图⽅法;七、掌握绘制⼆维数据曲线图的⽅法;⼋、通过练习掌握如plot、subplot等绘制⼆维曲线图常⽤的函数。

实验五图形用户界面

实验五图形用户界面

实验五图形用户界面【开发语言及实现平台或实验环境】Windows2000 或XP,【实验目的】1.了解图形用户界面基本组件窗口、按钮、文本框、选择框、滚动条等的使用方法,2.了解如何使用布局管理器对组件进行管理,以及如何使用Java 的事件处理机制。

【实验要求】1. 掌握在Applet 容器中添加组件的方法,掌握使用布局管理器对组件进行管理的方法。

2. 理解Java 的事件处理机制,掌握为不同组件编写事件处理程序的方法。

3. 掌握编写独立运行的窗口界面的方法。

4. 了解Java Swing 组件的使用方法。

5. 了解对话框的使用方法。

【实验内容】一.创建图形用户界面图形用户界面(Graphic User Interface ,简称GUI)是为方便用户使用设计的窗口界面,在图形用户界面中用户可以看到什么就操作什么,取代了在字符方式下知道是什么后才能操作什么的方式。

组件(Component)是构成GUI 的基本要素,通过对不同事件的响应来完成和用户的交互或组件之间的交互。

组件一般作为一个对象放置在容器(Container)内,容器是能容纳和排列组件的对象,如Applet、Panel(面板)、Frame(窗口)等。

通过容器的add 方法把组件加入到容器中。

1.在Applet 中添加标签、按钮并使用网格布局(1)程序功能:在Applet 容器中添加组件标签、按钮,并使用网格布局管理器排列组件在容器中的位置。

(2)编写程序文件,源代码如下。

import .*;import class LX5_1 extends Applet {Label l1;Button b1, b2, b3, b4, b5, b6;public void init() {setLayout(new GridLayout(3,3));;import class LX5_2 extends Applet {public void init() {;import class LX5_3 extends Applet implements ActionListener { eep();选择复选框和单选框按钮的事件处理程序(1)程序功能:在Applte 上创建复选框、单选框、文本区域、单行文本框等组件,并实现根据用户输入的10 进制数,选择不同选项可转换为2、8、16 进制数。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验五图形用户界面一、实验目的1.了解图形用户界面的概念;2.掌握标签和按钮的使用;3.掌握文本框和文本区的使用;4.掌握对话框的定义与使用;5.掌握Java的事件处理机制;二、实验要求1.掌握在容器中添加组件的方法,掌握使用布局管理器对组件进行管理的方法。

2.理解Ja va 的事件处理机制,掌握为不同组件编写事件处理程序的方法。

3.熟练使用常用组件编写独立运行的窗口界面。

4.熟练使用图形类Gr a ph ic s。

三、实验内容(一)建立独立运行的窗口界面并使用匿名类最常使用的包含组件的容器是窗口,在Ja va 中窗口由F r am e 类生成。

编写SY4_1.ja v a程序文件,程序功能:创建一个具有关闭功能的空白窗口。

源代码如下:import java.awt.*;import java.awt.event.*;public class SY4_1{SY4_1(){Frame f=new Frame("初始窗口");f.setSize(350,200);f.setVisible(true);//为窗口添加窗口事件适配器f.addWindowListener(new WindowAdapter() {//关闭窗口事件的方法public void windowClosing(WindowEvent e){System.exit(0);}});}public static void main(String[] args) {new SY4_1();System.out.println(args[0]+" "+args[1]);}}编译并运行程序(二)创建图形用户界面图形用户界面(G UI)是为方便用户使用设计的窗口界面,在图形用户界面中用户可以看到什么就操作什么,取代了在字符方式下知道是什么后才能操作什么的方式。

组件(C o mp on en t)是构成GU I 的基本要素,通过对不同事件的响应来完成和用户的交互或组件之间的交互。

组件一般作为一个对象放置在容器(Con t ai ner)内,容器是能容纳和排列组件的对象,如Pa ne l(面板)、Fr am e(窗口)等。

通过容器的ad d 方法把组件加入到容器中。

编写SY4_2.ja va 程序文件,程序功能:在窗口中添加组件。

源代码如下:import java.awt.*;import java.awt.event.*;public class SY4_2 extends Frame implements ActionListener {Button btn1, btn2;TextField f,tf1,tf2;TextArea Area;SY4_2(){super("添加组件的窗口");addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e){System.exit(0);}});setSize(350,250); //设置窗口大小setLocation(200,200);//设置窗口显示位置setFont(new Font("Arial",Font.PLAIN,12)); //设置字体setLayout(new FlowLayout());Area=new TextArea (6,40);tf1=new TextField(10); tf2=new TextField(10);btn1=new Button("显示"); btn2=new Button("退出");f=new TextField(20);add(Area); add(new Label("用户名"));add(tf1); add(new Label("电话"));add(tf2); add(f); add(btn1); add(btn2);tf1.addActionListener(this); tf2.addActionListener(this);btn1.addActionListener(this); btn2.addActionListener(this);show();}public static void main(String args[]){new SY4_2();}public void actionPerformed(ActionEvent e){if (e.getSource()==btn1)f.setText("你按下了" + e.getActionCommand() + "按钮");if (e.getSource()==tf1)Area.append("用户名:"+tf1.getText()+"\n");if (e.getSource()==tf2)Area.append("电话:"+tf2.getText()+"\n");if (e.getSource()==btn2){for (int i=0; i<100000000; i++){}dispose();}}}编译并运行程序(三)为窗口添加菜单程序功能:在窗口中添加菜单栏,在菜单栏添加菜单项,并添加下拉菜单和2级菜单,通过选择菜单项可以执行不同操作,如“打开”可打开S Y4_3类生成的窗口。

源代码如下:import java.awt.*;import java.awt.event.*;public class SY4_3 extends Frame implements ActionListener { Panel p=new Panel();Button b=new Button("退出");MenuBar mb=new MenuBar();Menu m1=new Menu("文件");MenuItem open=new MenuItem("打开");MenuItem close=new MenuItem("关闭");MenuItem exit=new MenuItem("退出");Menu m12=new Menu("编辑");MenuItem copy=new MenuItem("复制");MenuItem cut=new MenuItem("剪切");MenuItem paste=new MenuItem("粘贴");Menu m2=new Menu("帮助");MenuItem content=new MenuItem("目录");MenuItem index=new MenuItem("索引");MenuItem about=new MenuItem("关于");SY4_3() {super("添加菜单的窗口");setSize(350,200);add("South",p);p.add(b);b.addActionListener(this);m1.add(open);m1.add(close);m1.addSeparator(); //在菜单中添加分隔条m1.add(exit);open.addActionListener(this);exit.addActionListener(this);mb.add(m1);m12.add(copy); m12.add(cut); m12.add(paste);m1.add(m12);m2.add(content);m2.add(index);m2.addSeparator();m2.add(about);mb.add(m2);setMenuBar(mb);show();}public static void main(String args[]) {new SY4_3();}public void actionPerformed(ActionEvent e) {if (e.getActionCommand()=="退出")System.exit(0);if (e.getActionCommand()=="打开")new SY4_2();}}编译并运行程序。

(四)使用S w i n g 组件、了解事件处理机制在J av a 中,能够实现图形用户界面的类库有两个:jav a.a wt 和j a va x.sw ing。

前者称为抽象窗口工具库AW T(A bst r ac t W in do ws T o ol ki t),后者是Ja va 基础类库J F C(J av a Fo un dat i on C la ss es)的一个组成部分,它提供了一套功能更强、数量更多、更美观的图形用户界面组件。

Sw in g 组件名称和AW T 组件名称基本相同,但以J开头,例如AW T 按钮类的名称是Bu tt on,在Sw in g 中的名称则是JB ut to n。

在图形用户界面中,程序和用户的交互是通过组件响应各种事件来实现的。

例如,用户单击了一个按钮,意味着发生了按钮的单击事件;选中下拉框中的一个选项,意味着发生了一个选项事件。

在Ja va中能产生事件的组件叫做事件源,如按钮。

如果希望对单击按钮事件进行处理,可给事件源(按钮)注册一个事件监听器(如包含按钮的容器),如同签订了一个委托合同,当事件源发生事件时,事件监听器就代替事件源对发生的事件进行处理,这就是所谓的委托事件处理机制。

单击按钮的事件处理程序import java.awt.*;import java.awt.event.*;import javax.swing.*;public class SY4_4 extends JFrame implements ActionListener { private JPanel jp = new JPanel();private JButton[] jbArray = { new JButton("自动换行"), new JButton("不换行") };private JTextArea jta = new JTextArea();// 将文本区作为被滚动控件创建滚动窗体JScrollPane jsp = new JScrollPane(jta);public SY4_4() {jp.setLayout(null);for (int i = 0; i < 2; i++) {jbArray[i].setBounds(20 + i * 110, 120, 90, 20);jp.add(jbArray[i]);jbArray[i].addActionListener(this);}jsp.setBounds(20, 20, 450, 80);jp.add(jsp);jta.setLineWrap(true);for (int i = 0; i < 20; i++) {jta.append("[" + i + "]Hello World!!!!");}this.add(jp);this.setTitle("文本区示例");this.setResizable(false);this.setBounds(100, 100, 500, 180);this.setVisible(true);}public void actionPerformed(ActionEvent e) {if (e.getSource() == jbArray[0]) {jta.setLineWrap(true);} else if (e.getSource()==jbArray[1]) {jta.setLineWrap(false);}}public static void main(String[] args) {new SY4_4();}}(五)使用布局管理器对组件进行管理当一个容器组件上要添加多个组件时,就需要进行组件的布局管理。

相关文档
最新文档