实验五 图形用户界面
- 格式:doc
- 大小:81.00 KB
- 文档页数:8
实验9 图形用户界面一、实验目的初步掌握图形用户界面工具包的使用技术,初步掌握设计和构造用户界面中基本图形的方法。
了解图形用户界面基本组件窗口、按钮、文本框、选择框、滚动条等的使用方法,事件响应机制,理解和掌握图形用户界面系统中人机交互功能的实现技术。
了解Java提供的框架、面板、滚动面板等各种容器和各种布局控件的使用方法。
二、实验要求1. 理解并掌握Applet程序的生命周期。
2. 掌握Font类的构造方法和成员方法。
3. 掌握Color类的构造方法、数据成员常量和成员方法。
4. 掌握Polygon类的构造方法和成员方法。
5. 掌握Graphics类用于绘制各种几何图形的方法。
6. 掌握在A pplet 容器中添加组件的方法。
7. 了解J ava Swing 组件的使用方法。
8.掌握常用布局类的使用。
9.掌握容器Jpanel及JFrame容器的使用方法。
10.理解J ava 的事件处理机制,掌握为不同组件编写事件处理程序的方法。
11. 掌握编写独立运行的窗口界面的方法。
三、实验内容(一)文字与图形GUI设计1.程序功能:本程序包含A pplet 的4个与生命周期相关的方法init()、start()、stop ()、destroy()。
程序中创建了自定义方法a ddWords()来显示相应的字符串。
addWords 方法首先在标准输出即屏幕上显示字符串参数,然后将字符串添加到字符串缓冲区b uffer,通过调用r epaint 方法重画页面,首先自动调用u pdate 方法将当前画面清空,然后再调用p aint 方法在指定位置显示字符串。
编写L X12_1.java 程序文件,源代码如下。
import java.applet.Applet;import java.awt.Graphics;public class LX12_1 extends Applet {StringBuffer buffer=new StringBuffer();public void init() {addWords("执行了初始化方法 init()...");}public void start() {addWords("执行了开始方法s tart()...");}public void stop() {addWords("执行了停止方法s top()...");}public void destroy() {addWords("执行了清除方法d estroy()...");}void addWords(String s) {System.out.println(s);buffer.append(s);repaint();}public void paint(Graphics g) {g.drawString(buffer.toString(),5,15);}}2.在Applet中输出自己的名字、班级及学号,要求名字设置为24号黑体,班级以及学号设置为16号加粗斜宋体。
实验图形用户界面2 (4学时)【实验目的】1.了解图形用户界面基本组件窗口、按钮、文本框、选择框、滚动条等的使用方法,2.了解如何使用布局管理器对组件进行管理,以及如何使用Java 的事件处理机制。
【实验要求】1. 掌握在容器中添加组件的方法,掌握使用布局管理器对组件进行管理的方法。
2. 理解Java 的事件处理机制,掌握为不同组件编写事件处理程序的方法。
3. 掌握编写独立运行的窗口界面的方法。
4. 了解Java Swing 组件的使用方法。
5. 了解对话框的使用方法。
【实验内容】三.在Applet容器中添加组件的方法1.创建一个小应用程序,在其中添加组件(1)程序功能:在用户名及电话号码中输入完信息后,信息显示在最上面的文本域中;点击显示按钮,在相应的文本框中显示;点击退出按钮退出程序。
(2)编写appletTest.java 程序文件,源代码如下。
import java.awt.*;import java.awt.event.*;import javax.swing.*;public class appletTest extends JApplet implements ActionListener { Button btn1, btn2;TextField f,tf1,tf2;TextArea Area;JPanel pane1,pane2,pane3;Container pane;public void init() {setSize(500,300);pane=getContentPane();pane1= new JPanel();pane2= new JPanel();pane3= new JPanel();pane.setLayout(new GridLayout(1,3));pane.add(pane1);pane.add(pane2);pane.add(pane3);setLayout(new GridLayout(3,3));Area=new TextArea (4,40);tf1=new TextField(10); tf2=new TextField(10);btn1=new Button("显示"); btn2=new Button("退出");f=new TextField(20);pane1.add(Area); pane2.add(new Label("用户名"));pane2.add(tf1); pane2.add(new Label("电话"));pane2.add(tf2); pane3.add(f); pane3.add(btn1); pane3.add(btn2);tf1.addActionListener(this); tf2.addActionListener(this);btn1.addActionListener(this); btn2.addActionListener(this);}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) {System.exit(0);}}}(3)编译并运行程序。
实验2. 图形用户界面设计一、实验目的1 熟悉图形用户界面的设计原则2利用一种设计工具完成图形化的用户界面设计二、实验环境1.计算机2.Vs2012三、实验内容用常用的设计工具(VC/VB/Delphi/PB等)完成一个通用图形用户界面设计,要遵循界面设计的一般原则(一致性、快捷方式、提供错误处理),注意颜色的使用,学会使用图标、按钮、屏幕布局、菜单和对话框的设计.四、实验步骤1.设计多个对话框,完成填表输入界面的设计,合理使用图标、按钮、颜色;2.设计不同形式的菜单,完成对不同对话框的调用;3.提供简单的错误处理、联机帮助五、实验程序及结果1.主要程序如下privatevoid button1_Click(object sender, EventArgs e){int j, K = 0;char[] s = newchar[30];string n=textBox2.Text +" "+textBox1.Text;string m;if (textBox1.Text == "" || textBox2.Text == ""){MessageBox.Show("账号,密码不能为空");}FileStream fr = new FileStream("D:\\ONE PIECE\\onepiece.txt",FileMode.Open,FileAccess .Read);for (int i = 0; i < fr.Length; i++){for (j = 0; j < fr.Length; j++){s[j] = (char)fr.ReadByte();if (s[j] == '\\'){break;}}s[j] = '\0';m = newstring(s,0,j);if (m == n){K = 1;break;}Array.Clear(s, 0, s.Length);}if (K == 1){this.DialogResult = DialogResult.OK;this.Close();}elseMessageBox.Show("账号或密码错误!");}privatevoid button2_Click(object sender, EventArgs e){Form3 f3 = new Form3();f3.Show();}publicpartialclass Form3 : Form{public Form3(){InitializeComponent();}privatevoid button1_Click(object sender, EventArgs e){FileInfo fi = new FileInfo("D:\\ONE PIECE\\one piece.txt"); if(!Directory .Exists("D:\\ONE PIECE")){Directory.CreateDirectory("D:\\ONE PIECE");}if (!fi.Exists){fi.Create();}if (textBox2.Text == "" || textBox3.Text == "" || textBox3.Text != textBox4.Text) {MessageBox.Show("注册失败!");this.Close();}else{StreamWriter strw = new StreamWriter("D:\\ONE PIECE\\one piece.txt", true);strw.Write(textBox2.Text + " " + textBox3.Text + "\\");strw.Close();MessageBox.Show("注册成功!");this.Close();}}privatevoid timer1_Tick(object sender, EventArgs e){label1.Text = DateTime.Now.ToString();}2.主要界面图一登陆图二注册图四主界面图五功能显示图六反馈。
图形用户接口081180015 戴稚晖通信工程一、实验目的1、了解嵌入式系统图形用户界面的基本编程方法。
2、探讨软件结构的层次关系,学习图形库的制作。
一、实验原理概述1、图形用户界面简介图形用户界面(GUI)是一种图形化为基础的用户界面,使用统一的图形操作方式,如可移动的视图,选项及鼠标,作为用户与操作系统之间的桥梁,从而使用户摆脱了在命令行提示符下与操作系统进行交互的方式。
在嵌入式系统设计中,常被选择作为GUI系统进行开发的有:MiniGUI、MicroWindows、OpenGUI和QT/Embedded。
这些GUI系统都是以Frame Buffer作为图形驱动。
Frame Buffer作为Linux内核提供的一种底层图形接口,将显示设备映射到进程地址空间,是大多数GUI的基础。
2、Frame Buffer简介Frame Buffer又称之为帧缓冲或显存,是系统内的一段存储空间,与显示屏的整个显示区域相对应,通过改变帧缓冲区的内容来改变显示信息。
Frame Buffer的空间大小由显示屏的大小和显示模式决定。
显示屏可以以单色或者彩色显示,单色用一位来表示颜色,彩色可以用2、4、8、16、24、32等位色。
显示屏有单屏和双屏显示模式。
其中双屏显示模式将整个屏幕分为两部分,每个部分有各自的Frame Buffer,它们的地址无需连续,并有独立的两个通道将Frame Buffer中的数据传输到显示屏。
3、Frame Buffer与图像色彩Frame Buffer支持多种颜色显示方式:单色,伪彩色,真彩色,直接色,灰度。
伪彩色的RGB值不能直接从Frame Buffer中得到,而是通过调色板间接得到,此时Frame Buffer中存放的是调色板的索引值,通过索引值获得颜色。
真彩色的RGB值直接从Frame Buffer中得到,且不需要经过调色板。
直接彩色Frame Buffer里存放的是RGB值,但需要经过调色板调色后传输到显示屏。
实验5Windows图形程序设计一、实验目的:1、学习使用框架、面板、和简单用户界面UI组件。
2、学习使用布局管理器。
3、学习使用JavaBean组件创建图形用户界面应用程序。
4、理解和学习Windows事件驱动程序。
5、熟悉Java事件委托模式:事件的注册、监听和处理。
6、学习掌握掌握对象数组深复制的方法。
二、实验任务:1、使用Java SDK创建一个Windows图形界面应用程序。
2、实现一个能做算术运算的用户界面。
界面包括标签和文本域Number1、Number2、Result。
Result文本域用于显示Number1和Number2的算术运算的结果。
程序使用四个按钮,它们分别标有Add、Subtract、Multiply和Divide。
程序也创建了完成相同功能运算的菜单。
三、实验步骤:1、首先设置环境变量,保证在任何目录下都可以使用Java SDK编程工具。
如果Java SDK的安装目录为C:\j2sdk1.4.2_09,则在命令提示符状态(从附件中进入)下键入如下命令行设置环境变量:path C:\j2sdk1.4.2_09\bin2、使用Windows写字板编辑应用程序,源代码如下:import java.awt.*;import java.awt.event.*;import javax.swing.*;public class MenuDemo extends JFrame implements ActionListener{// Text fields for Number 1, Number 2, and Resultprivate JTextField jtfNum1, jtfNum2, jtfResult;// Buttons "Add", "Subtract", "Multiply" and "Divide"private JButton jbtAdd, jbtSub, jbtMul, jbtDiv;// Menu items "Add", "Subtract", "Multiply","Divide" and "Close"private JMenuItem jmiAdd, jmiSub, jmiMul, jmiDiv, jmiClose;// Main Methodpublic static void main(String[] args){MenuDemo frame = new MenuDemo();// frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.pack();frame.setVisible(true);}// Default Constructorpublic MenuDemo(){setTitle("Menu Demo");// Create menu barJMenuBar jmb = new JMenuBar();// Set menu bar to the framesetJMenuBar(jmb);// Add menu "Operation" to menu barJMenu operationMenu = new JMenu("Operation");operationMenu.setMnemonic('O');jmb.add(operationMenu);// Add menu "Exit" in menu barJMenu exitMenu = new JMenu("Exit");exitMenu.setMnemonic('E');jmb.add(exitMenu);// Add menu items with mnemonics to menu "Operation"operationMenu.add(jmiAdd= new JMenuItem("Add", 'A'));operationMenu.add(jmiSub = new JMenuItem("Subtract", 'S'));operationMenu.add(jmiMul = new JMenuItem("Multiply", 'M'));operationMenu.add(jmiDiv = new JMenuItem("Divide", 'D'));exitMenu.add(jmiClose = new JMenuItem("Close", 'C'));// Set keyboard acceleratorsjmiAdd.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,ActionEvent.CTRL_MASK));jmiSub.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, ActionEvent.CTRL_MASK));jmiMul.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_M,ActionEvent.CTRL_MASK));jmiDiv.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_D,ActionEvent.CTRL_MASK));// Panel p1 to hold text fields and labelsJPanel p1 = new JPanel();p1.setLayout(new FlowLayout());p1.add(new JLabel("Number 1"));p1.add(jtfNum1 = new JTextField(3));p1.add(new JLabel("Number 2"));p1.add(jtfNum2 = new JTextField(3));p1.add(new JLabel("Result"));p1.add(jtfResult = new JTextField(4)); jtfResult.setEditable(false);// Panel p2 to hold buttonsJPanel p2 = new JPanel();p2.setLayout(new FlowLayout());p2.add(jbtAdd = new JButton("Add"));p2.add(jbtSub = new JButton("Subtract"));p2.add(jbtMul = new JButton("Multiply"));p2.add(jbtDiv = new JButton("Divide"));// Add panels to the framegetContentPane().setLayout(new BorderLayout()); getContentPane().add(p1, BorderLayout.CENTER); getContentPane().add(p2, BorderLayout.SOUTH); // Register listenersjbtAdd.addActionListener(this);jbtSub.addActionListener(this);jbtMul.addActionListener(this);jbtDiv.addActionListener(this);jmiAdd.addActionListener(this);jmiSub.addActionListener(this);jmiMul.addActionListener(this);jmiDiv.addActionListener(this);jmiClose.addActionListener(this);}// Handle ActionEvent from buttons and menu items public void actionPerformed(ActionEvent e){String actionCommand = e.getActionCommand(); // Handle button eventsif (e.getSource() instanceof JButton){if ("Add".equals(actionCommand))calculate('+');else if ("Subtract".equals(actionCommand))calculate('-');else if ("Multiply".equals(actionCommand))calculate('*');else if ("Divide".equals(actionCommand))calculate('/');}else if (e.getSource() instanceof JMenuItem){// Handle menu item eventsif ("Add".equals(actionCommand))calculate('+');else if ("Subtract".equals(actionCommand))calculate('-');else if ("Multiply".equals(actionCommand))calculate('*');else if ("Divide".equals(actionCommand))calculate('/');else if ("Close".equals(actionCommand))System.exit(0);}}// Calculate and show the result in jtfResultprivate void calculate(char operator){// Obtain Number 1 and Number 2int num1 = (Integer.parseInt(jtfNum1.getText().trim())); int num2 = (Integer.parseInt(jtfNum2.getText().trim())); int result = 0;// Perform selected operationswitch (operator){case '+': result = num1 + num2;break;case '-': result = num1 - num2;break;case '*': result = num1 * num2;break;case '/': result = num1 / num2;}// Set result in jtfResultjtfResult.setText(String.valueOf(result));}}3、把上面编辑的源程序保存成Java源程序文件(扩展名为java),程序文件名分别是MenuDemo .java。
实验八图形用户界面【开发语言及实现平台或实验环境】Windows2000 或XP,JDK1.6与Jcreator4.0【实验目的】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〕编写LX8_1.java 程序文件,源代码如下。
import java.awt.*;import java.applet.Applet;public class LX8_1 extends Applet {Label l1;Button b1, b2, b3, b4, b5, b6;public void init() {setLayout(new GridLayout(3,3)); // 设置网格布局〔3 行3 列共9 个网格〕l1=new Label("标签1");b1 = new Button("按钮1");b2 = new Button("按钮2");b3 = new Button("按钮3");b4 = new Button("按钮4");add(l1);add(b1);add(b2);add(b3);add(new Label());add(b4);add(new Button("按钮5"));add( new Button("按钮6"));add(new Label("标签2"));}}〔3〕编译程序。
实验五人机界面交互设计实验一、目的1、熟悉构建人机交互界面的方法和设计自定义菜单的方法2、会制作简单的菜单和界面二、环境1、WINDOWS环境2、Labview8.6软件三、内容与步骤:[练习1]用户菜单的设计要求:开始中包含:登陆、注销、分栏符、退出系统操作:启动测试、暂停测试帮助:帮助文档、关于LabVIEW实验步骤:在前面板的菜单栏上找到编辑菜单,下拉编辑菜单找到运行时菜单,点击它出现上面的编辑界面,有3种菜单可以选择,分别是默认菜单,最小化菜单,自定义菜单,这里我们选择自定义菜单,然后在右边的菜单项类型中选择‘用户项’用户就可以编辑它的名字和标识符。
我们依次在名字中输入’开始,注销‘等名字。
上头的加号表示添加,左右表示所属的子菜单。
用户可以自己尝试的编辑。
[练习2]利用控件的属性节点编写一个VI,使其界面美观、生动。
如图:实验步骤:在前面板中添加波形图标控件,添加两个布尔圆形指示灯,在经典—经典布尔中添加。
现在我们来自定义它的属性节点。
选中控件右击找到高级—自定义,然后进入到自定义编辑窗口,在菜单项我们看到一个扳手样的图标,单击它我们会看到有有’从文件中导入’你可以导入你自己的图片啊,还可以看到“图片项”那里有四个图标你可以自己定义,按钮控件一般定义两个,按一下改变成另一个图标。
程序框图如上图绘制。
[练习3]利用下面这两张图片做一个自定义按钮控件,ON为笑脸,OFF为哭泣。
1.2.3.4.5.完成调用[练习4]练习普通对话框的使用(1)在程序框图中添加单按钮对话框,在函数—编程—对话框中选择,然后运行(2)同理这里选择双按钮对话框(3)。
实验五 图形用户界面 实验目的 1. 了解图形用户界面的概念; 2. 了解AWT和Swing的基本体系结构; 3. 掌握几种布局管理器的使用方法; 4. 掌握Java的事件处理机制; 5. 掌握图形用户界面的构建。
实验要求 1. 掌握在容器中添加组件的方法,掌握使用布局管理器对组件进行管理的方法。 2. 理解 Java 的事件处理机制,掌握为不同组件编写事件处理程序的方法。 3. 掌握编写独立运行的窗口界面的方法。 4. 了解 Java Swing 组件的使用方法。 5. 了解对话框的使用方法。 6. 熟练使用图形类 Graphics。
实验内容 (一)建立独立运行的窗口界面并使用匿名类 最常使用的包含组件的容器是窗口,在Java 中窗口由Frame 类生成。 编写SY5_1.java程序文件,程序功能:创建一个具有关闭功能的空白窗口。源代码如下: import java.awt.*; import java.awt.event.*; public class SY5_1{ SY5_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 SY5_1(); }
} 编译并运行程序 (二)创建图形用户界面 图形用户界面(GUI)是为方便用户使用设计的窗口界面,在图形用户界面中用户可以看到什么就操作什么,取代了在字符方式下知道是什么后才能操作什么的方式。组件(Component)是构成GUI 的基本要素,通过对不同事件的响应来完成和用户的交互或组件之间的交互。组件一般作为一个对象放置在容器(Container)内,容器是能容纳和排列组件的对象,如Applet、Panel(面板)、Frame(窗口)等。通过容器的add 方法把组件加入到容器中。 编写SY5_2.java 程序文件,程序功能:在窗口中添加组件。源代码如下: import java.awt.*; import java.awt.event.*; public class SY5_2 extends Frame implements ActionListener { Button btn1, btn2; TextField f,tf1,tf2; TextArea Area; SY5_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 SY5_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级菜单,通过选择菜单项可以执行不同操作,如“打开”可打开SY5_3类生成的窗口。源代码如下: import java.awt.*; import java.awt.event.*; public class SY5_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("关于"); SY5_3() { super("添加菜单的窗口"); setSize(350,200); add("South",p); p.add(b); b.addActionListener(this); m1.add(open); // 将菜单项加入到菜单m1 中 m1.add(close); m1.addSeparator(); //在菜单中添加分隔条 m1.add(exit); open.addActionListener(this); //给菜单项open 注册事件监听器 exit.addActionListener(this); mb.add(m1); // 将菜单m1 加入到菜单栏mb 中 m12.add(copy); m12.add(cut); m12.add(paste); m1.add(m12);//将m12 作为2 级菜单添加到m1 菜单项中 m2.add(content); m2.add(index); m2.addSeparator(); m2.add(about); mb.add(m2); setMenuBar(mb); // 设置菜单栏为mb show();// 显示组件 } public static void main(String args[]) { new SY5_3(); } public void actionPerformed(ActionEvent e) { if (e.getActionCommand()=="退出") System.exit(0); if (e.getActionCommand()=="打开") new SY5_2(); } } 编译并运行程序。
(四)使用 Swing 组件、了解事件处理机制 在Java 中,能够实现图形用户界面的类库有两个:java.awt 和javax.swing。前者称为抽象窗口工具库AWT(Abstract Windows Toolkit),后者是Java 基础类库JFC(Java Foundation Classes) 的一个组成部分,它提供了一套功能更强、数量更多、更美观的图形用户界面组件。Swing 组件名称和AWT 组件名称基本相同,但以J 开头,例如AWT 按钮类的名称是Button,在Swing 中的名称则是JButton。 在图形用户界面中,程序和用户的交互是通过组件响应各种事件来实现的。例如,用户单击了一个按钮,意味着发生了按钮的单击事件;选中下拉框中的一个选项,意味着发生了一个选项事件。在Java 中能产生事件的组件叫做事件源,如按钮。如果希望对单击按钮事件进行处理,可给事件源(按钮)注册一个事件监听器(如包含按钮的容器),如同签订了一个委托合同,当事件源发生事件时,事件监听器就代替事件源对发生的事件进行处理,这就是所谓的委托事件处理机制。 单击按钮的事件处理程序 import java.awt.*; import java.awt.event.*; import javax.swing.*; public class SY5_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 SY5_4() { jp.setLayout(null); for (int i = 0; i < 2; i++) { jbArray[i].setBounds(20 + i * 110, 120, 90, 20); jp.add(jbArray[i]);