教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 高等教育 >

Java龚永罡 - 答案(8)

来源:网络收集 时间:2026-07-28
导读: { public static void main(String args[]) { ComputerFrame frame; frame=【代码9】//创建窗口,其标题为:算术测试 } } ? 实验后的练习: 1. 给上述程序增加测试乘、除的功能。 2.信号灯。 ? 实验要求: 编写一

{ public static void main(String args[]) { ComputerFrame frame;

frame=【代码9】//创建窗口,其标题为:算术测试 } }

? 实验后的练习:

1. 给上述程序增加测试乘、除的功能。

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); }

26

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返回被选中的条目

27

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(\信号灯\ } }

? 实验后的练习:

1. 改进上述程序,在下拉列表中增加“熄灭所有灯”选项,当选中该项时,画布上绘制一个半径为0,位置是(0,0)的圆。

28

3.布局与日历。

? 实验要求:

编写一个应用程序,有一个窗口,该窗口为BorderLayout布局。窗口的中心添加一个Panel容器:pCenter,pCenter的布局是7行7列的GriderLayout布局,pCenter中放置49个标签,用来显示日历。窗口的北面添加一个Panel容器pNorth,其布局是FlowLayout布局,pNorth放置两个按钮:nextMonth和previousMonth,单击nextMonth按钮,可以显示当前月的下一月的日历;单击previousMonth按钮,可以显示当前月的上一月的日历。窗口的南面添加一个Panel容器pSouth,其布局是FlowLayout布局,pSouth中放置一个标签用来显示一些信息。

? 程序运行效果示例:

程序运行效果如下图所示:

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); …… 此处隐藏:1357字,全部文档内容请下载后查看。喜欢就下载吧 ……

Java龚永罡 - 答案(8).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/607289.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)