实验五 图形用户界面
时间:2026-01-22
时间:2026-01-22
实验报告
实验五 图形用户界面
实验目的
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.add(about);
mb.add(m2);
setMenuBar(mb); // 设置 …… 此处隐藏:6358字,全部文档内容请下载后查看。喜欢就下载吧 ……