GUI标准组件及事件处理

一、实验目的:

了解图形用户界面基本组件:框架、面板、按钮、标签、菜单、列表等的使用方法;了解如何使用布局管理器对组件进行管理;理解和掌握 Java 的事件处理机制。 

二、实验环境:

     Eclipse

三、实验内容:

   (一)在面板中添加多个组件,并进行合理的布局

¨  程序功能:在一个框架(Frame)容器中添加一个面板(Panel)容器,并分别在框架和面板容器中添加组件并使用不同的布局管理方式

源代码如下。

      import java.awt.*;

import java.awt.color.*;

public class KY7_1 {

public static void main(String[] args) {

// TODO Auto-generated method stub

Frame f = new Frame(); //创建一个框架f

Panel p = new Panel(); //创建一个面板p

f.add(p); //把面板p添加到框架f

p.setBackground(Color.blue); //设置面板p的背景颜色为蓝色

p.setLayout(new FlowLayout()); //设置面板p的布局为流式布局

Label l = new Label();

p.add(l); //在面板p中添加一个标签l

Button button1 = new Button();

Button button2 = new Button();

Button button3 = new Button();

Button button4 = new Button();

Button button5 = new Button();

Button button6 = new Button();

p.add(button1);

p.add(button2);

p.add(button3);

        p.add(button4);

        p.add(button5);

        p.add(button6); //在面板p 中添加六个按钮

        Choice c=new Choice(); // 创建一个下拉列表c

        c.addItem("北京"); // 下拉列表c 中有三个选项:北京、上海和天津

        c.addItem("上海");

        c.addItem("天津");

        p.add(c); //把列表c 添加到面板p

f.setBounds(400,400,400,400);

f.setVisible(true);

f.validate(); //设置框架f 的大小和可见性

 

 }

    }

 


       编译结果如下:

                

 

 

 

 

 

(二)为窗口添加菜单,并处理由菜单项所引发的事件

程序功能:在窗口中添加菜单条,在菜单条中添加菜单,并在菜单中添加菜单项和子菜单。通过选择菜单项可以引发不同的事件,从而执行不同操作,例如点击“打开”菜单项可以打开一个“打开文件对话框”。

源程序如下:

import java.awt.*;

import java.awt.event.*;

 

public class KY7_2 extends Frame implements ActionListener {

static Frame f;          //声明一个框架

    static FileDialog fd1;    //声明一个文件对话框对象

  static FileDialog fd2;

public static void main(String[] args) {

// TODO Auto-generated method stub

KY7_2 k = new KY7_2();

f = new Frame();  //创建一个框架f

MenuBar mb = new MenuBar();  //创建一个菜单条mb

Menu m1 = new Menu("文件");

/*在菜单条mb中添加两个菜单m1"文件")和m2("帮助")*/

Menu m2 = new Menu("帮助");

mb.add(m1);

mb.add(m2);

 

MenuItem m11 = new MenuItem("打开");

/*  "文件"菜单m1中有三个菜单项:m11"打开")、m12"关闭")和m13"退出"*/

MenuItem m12 = new MenuItem("关闭");

MenuItem m13 = new MenuItem("退出");

m1.add(m11);

m1.add(m12);

m1.add(m13);

MenuItem m21 = new MenuItem("目录");

/*  "帮助"菜单m2中有三个菜单项:m21"目录")、m22"索引")和m23"关于"*/

MenuItem m22 = new MenuItem("索引");

MenuItem m23 = new MenuItem("关于");

m2.add(m21);

m2.add(m22);

m2.add(m23);//  "文件"菜单m1中还有一个子菜单m3"编辑"

Menu m3 = new Menu("编辑"); /*  "编辑"子菜单m3 中有三个菜单项:m31"复制")、

m32"剪切")和m33"粘贴"*/  

MenuItem m31 = new MenuItem("复制");

MenuItem m32 = new MenuItem("剪切");

MenuItem m33 = new MenuItem("粘贴");

m3.add(m31);

m3.add(m32);

m3.add(m33);

m1.add(m3);

m11.addActionListener(k); /* 允许菜单项"打开"引发一个事件,该事件的处理者为当前对象 k  */

m13.addActionListener(k); /* 允许菜单项"退出"引发一个事件,该事件的处理者为当前对象 k  */

f.setSize(350,200);// 设置框架f的大小

f.setMenuBar(mb); // 设置框架f的菜单条为mb  

f.setVisible(true);}

public void actionPerformed (ActionEvent e)

{ if (e.getActionCommand() == "打开")

{FileDialog fd1 = new FileDialog (f, "open", FileDialog.SAVE);

fd1.setVisible (true);

}

if (e.getActionCommand() == "保存")

{FileDialog fd2 = new FileDialog (f, "save", FileDialog.SAVE);

fd2.setVisible (true);

}

 

}

}

编译结果如下:

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值