Java SE实验项目三 组件与事件编程
第1部分 组件与事件处理(1)
[实验目的]
1、掌握java 图形用户界面设计常用类及其各自重要方法的应用。 2、掌握java 事件处理模式并熟练掌握文本框上事件处理的方法。
[实验要求]
1、 复习理论教学中所学的内容。
2、 认真进行实验预习,查阅参考书,书写源程序,书写实验预习报告。 3、 认真总结实验并书写实验报告。
[实验课时] 2学时
[实验教学方式] 学生上机实验,教师随堂指导。 [实验内容]
1、算术测试:请读懂下面模板程序,将其补充完整并调试运行。 //Teacher.java
public class Teacher { int numberOne,numberTwo; String operator=\ boolean right;
public int giveNumberOne(int n) { numberOne=(int)(Math.random()*n)+1; return numberOne; }
public int giveNumberTwo(int n)
{ numberTwo=(int)(Math.random()*n)+1;
return numberTwo; }
public String giveOperator() { double d=Math.random(); if(d>=0.5) operator=\ else
operator=\
return operator;
}
public boolean getRight(int answer) { if(operator.equals(\
{ if(answer==numberOne+numberTwo)
right=true; else
right=false;
}
else if(operator.equals(\ { if(answer==numberOne-numberTwo) right=true; else
right=false; }
return right;
}
}
//ComputerFrame.java
//MainClass.java
public class MainClass
{ public static void main(String args[]) { ComputerFrame frame;
frame=【代码9】//创建窗口,其标题为:算术测试 } }
2、信号灯:请读懂下面模板程序,将其补充完整并调试运行。 //SignalCanvas.java
import java.awt.*;
public class SignalCanvas extends Canvas { int red,green,yellow,x,y,r; SignalCanvas()
{ setBackground(Color.white); }
public void setRed(int r) { red=r; }
public void setGreen(int g) { green=g; }
public void setYellow(int y) { yellow=y; }
public void setPosition(int x,int y) { this.x=x;
this.y=y; }
public void setRadius(int r) { this.r=r; }
public void paint(Graphics g) { if(red==1)
{ g.setColor(Color.red); }
else if(green==1)
{ g.setColor(Color.green); }
else if(yellow==1)
{ g.setColor(Color.yellow); }
g.fillOval(x,y,2*r,2*r); } }
//SignalFrame.java
import java.awt.*; import java.applet.*; import java.awt.event.*;
public class SignalFrame extends Frame implements ItemListener { Choice choice;
SignalCanvas signal=null;
String itemRed=\红灯\黄灯\绿灯\ public SignalFrame()
{ choice=【代码1】 //创建choice
【代码2】 //创建choice添加itemRed 【代码3】 //创建choice添加itemYellow 【代码4】 //创建choice添加itemGreen 【代码5】 //将当前窗口注册为choice的ItemEvent事件监视器 add(choice,BorderLayout.NORTH);
try{ Class cs=Class.forName(\ signal=(SignalCanvas)cs.newInstance(); add(signal,BorderLayout.CENTER); }
catch(Exception e)
{ add(new Label(\您还没有编写SignalCanvas类\ }
setBounds(100,100,360,300); setVisible(true); validate();
addWindowListener(new WindowAdapter()
{ public void windowClosing(WindowEvent e) { System.exit(0); } } ); }
public void itemStateChanged(ItemEvent e)
{ String item= 【代码6】 // choice返回被选中的条目 int w=signal.getBounds().width; int h=signal.getBounds().height; int m=Math.min(w,h); signal.setRadius(m/6); if(item.equals(itemRed)) { if(signal!=null) { signal.setRed(1); signal.setYellow(0); signal.setGreen(0); signal.setPosition(w/3,0); signal.repaint(); } }
else if(item.equals(itemYellow)) { if(signal!=null) { signal.setRed(0); signal.setYellow(1); signal.setGreen(0);
signal.setPosition(w/3,h/3); signal.repaint(); } }
else if(item.equals(itemGreen)) { if(signal!=null) { signal.setRed(0); signal.setYellow(0); signal.setGreen(1);
signal.setPosition(w/3,2*h/3); signal.repaint(); } } } }
//SignalMainClass.java
public class SignalMainClass
{ public static void main(String args[])
{ SignalFrame frame; frame=new SignalFrame() ; frame.setTitle(\信号灯\ } }
3、布局与日历:请读懂下面模板程序,将其补充完整并调试运行。 //CalendarBean.java
import java.util.Calendar; public class CalendarBean {
String day[]; int year=2005,month=0; public void setYear(int year) { this.year=year; }
public int getYear() { return year; }
public void setMonth(int month) { this.month=month; }
public int getMonth() { return month; }
public String[] getCalendar() { String a[]=new String[42]; Calendar 日历=Calendar.getInstance(); 日历.set(year,month-1,1);
int 星期几=日历.get(Calendar.DAY_OF_WEEK)-1; int day=0;
if(month==1||month==3||month==5||month==7||month==8||month==10||month==12) { day=31; }
if(month==4||month==6||month==9||month==11) { day=30; } if(month==2)
{ if(((year%4==0)&&(year0!=0))||(year@0==0)) { day=29; } else
{ day=28; } }
百度搜索“70edu”或“70教育网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,70教育网,提供经典综合文库Java SE实验项目3 组件与事件编程(1)在线全文阅读。
相关推荐: