java实验报告实验2答案_第1页
java实验报告实验2答案_第2页
java实验报告实验2答案_第3页
java实验报告实验2答案_第4页
java实验报告实验2答案_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验二 熟悉Applet,GUI编程实验目的:本实验旨在巩固同学们对上课所讲Applet,异常处理,java的控制加深理解,图形用户界面基本组件窗口、按钮、文本框、选择框、滚动条等的使用方法,对java的语法和编程有一个更加深入的理解,为同学们以后的能够用Java进行独立地编写桌面程序打下一定的基础。了解如何使用布局管理器对组件进行管理,以及如何使用Java的事件处理机制。实验内容:l 创建一个java项目,命名为experiment2。(如何创建项目参考实验一的项目创建方法。)(一) 创建图形用户界面图形用户界面(Graphic User Interface ,简称GUI)是为方便用户使用设

2、计的窗口界面,在图形用户界面中用户可以看到什么就操作什么,取代了在字符方式下知道是什么后才能操作什么的方式。组件(Component)是构成GUI的基本要素,通过对不同事件的响应来完成和用户的交互或组件之间的交互。组件一般作为一个对象放置在容器(Container) 内,容器是能容纳和排列组件的对象,如Applet、Panel(面板)、Frame(窗口)等。通过容器的add方法把组件加入到容器中。 1 在Applet中添加标签、按钮并使用网格布局 (1)程序功能 在Applet 容器中添加组件标签、按钮,并使用网格布局管理器排列组件在容器中的位置。 (2)编写LX6_1.java 程序文件,源

3、代码如下: import java.awt.*; import java.applet.Applet; public class LX6_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);a

4、dd(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)编译程序LX6_1.java。 (4)编写显示Applet 的页面文件LX6_1.html,在浏览器显示结果如图2.1 所示。 图2.1 2 在面板中添加组件 (1)程序功能:在Applet 中添加面板容器,并分别在Applet、面板容器中添加组件并使用不同的布局管理方式。(2)编写LX6_2.java 程序文件,源代码如下。import java.awt.*;

5、import java.awt.Color;import java.applet.Applet;public class LX6_2 extends Applet public void init() /设置最底层的 Applet 容器为顺序布局setFont(new Font(Arial,Font.PLAIN,20);Label l=new Label(这是最底层的 Applet 容器中的标签,Label.CENTER);add(l);Panel panel1=new Panel();add( panel1);panel1.setBackground(Color.blue);panel1.s

6、etForeground(Color.red);panel1.setLayout(new BorderLayout();/设置边界布局panel1.add(North, new Button(北);panel1.add(South, new Button(南);panel1.add(East, new Button(东);panel1.add(West, new Button(西);panel1.add(Center, new Label(这是在 Panel1 面板 中部添加的标签);Panel panel2=new Panel();add( panel2);panel2.setLayout(

7、new GridLayout(3,1); /设置网格布局Choice c=new Choice ();/创建下拉式列表c.addItem(北京);c.addItem(上海);c.addItem(天津);Label l1=new Label(这是在 Panel2 面板中的标签);Button b1=new Button(Panel2 中的按钮);panel2.setBackground(Color.green);panel2.add(l1);panel2.add(b1);panel2.add(c);(3)编译程序LX6_2.java。(4)编写显示Applet 的页面文件LX6_2.html,在

8、浏览器显示结果如图6.2 所示。图2.2 3、编写程序实现下图功能。(二) 了解事件处理机制在图形用户界面中,程序和用户的交互是通过组件响应各种事件来实现的。例如,用户单击了一个按钮,意味着发生了按钮的单击事件;选中下拉框中的一个选项,意味着发生了一个选项事件。在Java中能产生事件的组件叫做事件源,如按钮。如果希望对单击按钮事件进行处理,可给事件源(按钮)注册一个事件监听器(如包含按钮的容器),如同签订了一个委托合同,当事件源发生事件时,事件监听器就代替事件源对发生的事件进行处理,这就是所谓的委托事件处理机制。 1单击按钮的事件处理程序 (1)程序功能:使用手工布局设置组件标签、按钮的位置,

9、为按钮编写单击事件处理方法。当用户用鼠标单击按钮时,会听到一声响声。 (2)编写LX6_3.java程序文件,源代码如下。 import java.awt.*;import java.awt.event.*;import java.applet.Applet;public class LX6_3 extends Applet implements ActionListener / 实现动作事件监听接口public void init() setLayout(null);/关闭默认的顺序管理布局 Label l=new Label(按一下按钮可听到响声!, Label.CENTER);add(l

10、);l.setBounds(40,10,150,30);Button b=new Button(按钮);add(b);b.setBounds(60,50,60,40);b.addActionListener (this); / 注册事件源的动作监听者public void actionPerformed(ActionEvent e) /实现单击事件接口的方法Toolkit.getDefaultToolkit ().beep(); /单击事件发生时作出的反应(3)编译程序LX6_3.java。 (4) 编写显示Applet的页面文件LX6_3.html,在浏览器显示结果如图3.3所示。 图2.3

11、 2. 选择复选框和单选框按钮的事件处理程序 (1)程序功能:在Applte 上创建复选框、单选框、文本区域、单行文本框等组件,并实现根据用户输入的10进制数,选择不同选项可转换为2、8、16进制数。 (2)编写LX6_4.java 程序文件,源代码如下。import java.applet.Applet;import java.awt.*;import java.awt.event.*;public class LX6_4 extends Applet implements ItemListener TextArea area=new TextArea(6,30);/创建文本区String

12、Item=2 进制,8 进制,16 进制,10 进制;Checkbox cb=new Checkbox5;Checkbox radio=new Checkbox5;Label l=new Label(输入10 进制数);TextField TF=new TextField(6);/创建单行文本框public void init()add(l);add(TF);add(area);add(new Label( 请选择进制:);for(int i=0; i4; i+) cbi=new Checkbox(Itemi);add(cbi);cbi.addItemListener(this);Checkb

13、oxGroup cbGroup=new CheckboxGroup();/创建单选框add(new Label(请选择进制:);for(int i=0; i4; i+) radioi=new Checkbox(Itemi,cbGroup,false);add(radioi);radioi.addItemListener(this);public void itemStateChanged(ItemEvent e) int x=Integer.parseInt(TF.getText();if (e.getItem ()=2 进制)area.append (你选择的是+e.getItem ()+

14、Integer.toBinaryString(x)+n);if (e.getItem ()=8 进制)area.append (你选择的是+e.getItem ()+ Integer.toOctalString(x)+n);if (e.getItem ()=16 进制)area.append (你选择的是+e.getItem ()+Integer.toHexString(x)+n);if (e.getItem ()=10 进制)area.append (你选择的是+e.getItem ()+x+n);(3)编译程序LX6_4.java。 (4)编写显示Applet 的页面文件LX6_4.htm

15、l,在浏览器显示结果如图3.4 所示。 图2.4 (三)在Experiment2下创建自己的JApplet.效果类似于下图。图2.5下面是实验二的JApplet代码:import javax.swing.*;import java.awt.*;import java.awt.event.*;public class drawpicture extends JApplet implements ActionListener int x=30,y=30;JButton jb1,jb2;JLabel jl1;JTextField jt1;JPanel jp;Container c; public v

16、oid init() c=getContentPane(); c.setLayout(new BorderLayout(); jb1=new JButton(点击); jb2=new JButton(Reset); jl1=new JLabel(增加半径值:); jp=new JPanel(); jt1=new JTextField(20); jp.add(jl1); jp.add(jt1); jp.add(jb1); jp.add(jb2); c.add(jp,BorderLayout.SOUTH); jb1.addActionListener(this); jb2.addActionLis

17、tener(this); setSize(600,600); setVisible(true); public void actionPerformed(ActionEvent evt) if(evt.getSource()=jb1) x=x+Integer.parseInt(jt1.getText(); y=y+Integer.parseInt(jt1.getText(); repaint(); if(evt.getSource() =jb2) x=30; y=30; repaint(); public void paint(Graphics g) super.paint(g); g.dra

18、wOval(x, y, x, y);(四)编辑一个程序,并用异常处理技术来处理它,比如被0除,数组下标溢出等。代码:import java.awt.*;import java.awt.Color;import java.applet.Applet;public class LX6_5 extends Frame Label label1=new Label(Name :); TextField txt1=new TextField(20); Label label2=new Label(Favourates sports :); Checkbox box1=new Checkbox(Crick

19、et); Checkbox box2=new Checkbox(Badmiton); Checkbox box3=new Checkbox(Golf); Label label3=new Label(Gender); CheckboxGroup cg=new CheckboxGroup(); Checkbox r1=new Checkbox(Male,cg,false); Checkbox r2=new Checkbox(Femal,cg,false); Label label4=new Label(Comments :); TextField field1=new TextField();

20、Button b1=new Button(Submit); Button b2=new Button(Reset);public LX6_5(String s) super(s);setLayout(new GridLayout(10,1); Panel panel1=new Panel();add(panel1);panel1.setBackground(Color.blue); panel1.add(label1);panel1.add(txt1); Panel panel2=new Panel();add(panel2);panel2.setBackground(Color.red); panel2.add(label2);panel2.add(box1);panel2.add(box2);panel2.add(box3); Panel panel3=new Panel();add(panel3);panel3.setBackground(Color.green); panel3.add(label3);panel3.add(r1);panel3.add(r2); Panel panel4=new Panel();add(panel4);pan

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论