首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
下面是一个Applet程序,其功能是根据公式:y=a*sin(x)绘制正弦曲线。要求窗口中有一个文本区作为曲线峰值a的输入,可以判断输入的数字是否符合要求,一个ok按钮,点击则在画布中绘制曲线,以画布中的横坐标值作为sin()的参数x。请改正程序中的错误(
下面是一个Applet程序,其功能是根据公式:y=a*sin(x)绘制正弦曲线。要求窗口中有一个文本区作为曲线峰值a的输入,可以判断输入的数字是否符合要求,一个ok按钮,点击则在画布中绘制曲线,以画布中的横坐标值作为sin()的参数x。请改正程序中的错误(
admin
2009-01-15
94
问题
下面是一个Applet程序,其功能是根据公式:y=a*sin(x)绘制正弦曲线。要求窗口中有一个文本区作为曲线峰值a的输入,可以判断输入的数字是否符合要求,一个ok按钮,点击则在画布中绘制曲线,以画布中的横坐标值作为sin()的参数x。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。
注意:不改动程序的结构,不得增行或删行。
程序运行结果如下:
import java.awt.*;
import java.awt.event.*;
import java.applet.Applet;
import java.lang.Math.*;
/*
<applet code="ex18_3.class" width=800 height=400 >
</applet>
*/
public class ex18_3 extends Applet implements ActionListener {
Panel pane=new Panel();
drawWnd dw;
Label 11 = new Label("峰值");
TextField tf1 = new TextField(15);
Button btn = new Button("OK");
private float a=0;
public void init(){
pane.setLayout(new FlowLayout(FlowLayout.CENTER,25,5));
pane.add(11);
pane.add(tf1);
pane.add(btn);
btn.addActionListener(this);
add("North",pane);
dw=new drawWnd();
add("South",dw);
}
class drawWnd extends Canvas {
drawWnd() {
setSize(300,100);
setBackground(Color. GRAY);
}
public void paint(Graphics g) {
g.setColor(Color.GREEN);
for(int i=0;i<getSize().width-1;i++){
int y=0;
int y1=y+(int) (Math.sin(i)*a);
int y2=y1+(int) (a*Math.sin(i+1));
g.drawLine(i,y1,i+1,y2);
}
}
}
public void actionPerformed(ActionEvent ae) {
try{
a=Integer.parseInt(tf1.getText());
dw.repaint();
}
catch(NumberFormatException nfe){
tf1.setText("error!");
}
}
}
ex18_3.html
<HTML>
<HEAD>
<TITLE>ex18_3</TITLE>
</HEAD>
<BODY>
<applet code="ex18_3.class" width=800 height=400 >
</applet>
</BODY>
</HTML>
选项
答案
y=getSize().height/2 int y2=y+(int)(a*Math.sin(i+1)) a=Float.parseFloat(tf1.getText())
解析
本题主要考查Applet的图形绘制,Applet的生命周期以及其事件处理机制。解题关键是熟悉Applet窗口中坐标的布局,会使用TextField,Canvas,Button等构件,会使用内部类继承Canvas类,实现在画布中绘制图像的方法,并通过在主程序中结合事件处理机制来调用该方法。本题中,第一处,由于画布中的纵坐标是从上向下从0开始的,因此需要有一个相对坐标原点,这里取画布的一半;第二处,计算下一点的坐标,应该是相对于坐标原点y而言的坐标值,不应该是y1;第三处,a为float类型的变量,因此要用Float类的类型转换方法。
转载请注明原文地址:https://kaotiyun.com/show/wIID777K
本试题收录于:
二级Java题库NCRE全国计算机二级分类
0
二级Java
NCRE全国计算机二级
相关试题推荐
王某持匕首抢劫张某,在争斗中王某头部撞击墙角昏迷倒地,匕首掉在地上。张某见状,捡起匕首往王某心脏部位猛刺数下,导致王某死亡。对于张某用匕首刺死王某的行为,下列说法正确的是()。
根据我国宪法和法律,下列选项哪一个是正确的?()
亚太经合组织逐步形成了自己独特的合作方式,即“APEC”方式,这一合作方式的内容是()。①承认多样性②强调协商一致③强调互惠互利④强调自主自愿⑤强调灵活性⑥
化学与生产、生活息息相关,下列叙述错误的是()。
扩张性货币政策的主要功能是()。
一个箱子里有四种不同颜色的小球,每次拿出2个,要保证有10次所拿的结果是一样的,至少要拿()次。
一般来说,贯穿于教育活动全过程,以改进工作为目标的教育评价是()
关于“描述性定义”“规定性定义”和“纲领性定义”,下列说法正确的是
在创建线程时可以显式地指定线程组,此时可供选择的线程构造方法有()种。
随机试题
某大型国有企业实行会计电算化后,按照会计电算化的特点和要求及《会计电算化工作规范》中提出建立会计电算化岗位责任制的原则,要加强对会计电算化系统的使用人员和维护人员的管理,明确系统内部人员的职责、权限,建立健全岗位责任制。实现会计电算化后,企业为建立和健全岗
水准测量仪型号DS05,其中数字表示每公里往返高差中数的误差为()。
计算收缩期左室射血分数的公式是
()是决定建筑物价格的最基本的因素。
下列选项中不属于文明施工基本要求的有()。
下列关于施工任务委托的表述中,不正确的是()。
按照上海证券交易所法人结算模式,登记结算机构根据各证券公司T日的清算数据文件中的实际收付金额在T+1规定的时间进行()交易的资金交收。
当政府实行扩张性的财政政策,往往会造成利率上升,进而会在一定程度上抑制私人投资,这种情况被称为()。
无论经历多少艰难、付出多大牺牲,都不能忘了为什么出发,不能忘了肩负的使命任务,始终信念如磐、意志如铁、________,做到“千磨万击还坚劲,任尔东西南北风”。在见世面中强大内心,既能容得下征途顺利时的春风得意,谦虚谨慎、再接再厉、再创佳绩,也能容得下前进
Forwhatreasondidthefarmergotoseeadoctorinthetown?
最新回复
(
0
)