[問答題] 下面是一個Applet程序,其功能是根據(jù)公式:y=a*sin(x)繪制正弦曲線。要求窗口中有一個文本區(qū)作為曲線峰值a的輸入,可以判斷輸入的數(shù)字是否符
[問答題] 下面是一個Applet程序,其功能是根據(jù)公式:y=a*sin(x)繪制正弦曲線。要求窗口中有一個文本區(qū)作為曲線峰值a的輸入,可以判斷輸入的數(shù)字是否符合要求,一個ok按鈕,點擊則在畫布中繪制曲線,以畫布中的橫坐標(biāo)值作為sin()的參數(shù)x。請改正程序中的錯誤(有下劃線的語句),使程序能輸出正確的結(jié)果。
注意:不改動程序的結(jié)構(gòu),不得增行或刪行。
程序運行結(jié)果如下:
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(tf
正確答案:y=getSize().height/2 int y2=y+(int)(a*Math.sin(i+1)) a=Float.parseFloat(tf1.getText())
參考解析:本題主要考查Applet的圖形繪制,Applet的生命周期以及其事件處理機制。解題關(guān)鍵是熟悉Applet窗口中坐標(biāo)的布局,會使用TextField,Canvas,Button等構(gòu)件,會使用內(nèi)部類繼承Canvas類,實現(xiàn)在畫布中繪制圖像的方法,并通過在主程序中結(jié)合事件處理機制來調(diào)用該方法。本題中,第一處,由于畫布中的縱坐標(biāo)是從上向下從0開始的,因此需要有一個相對坐標(biāo)原點,這里取畫布的一半;第二處,計算下一點的坐標(biāo),應(yīng)該是相對于坐標(biāo)原點y而言的坐標(biāo)值,不應(yīng)該是y1;第三處,a為float類型的變量,因此要用Float類的類型轉(zhuǎn)換方法。
詞條內(nèi)容僅供參考,如果您需要解決具體問題
(尤其在法律、醫(yī)學(xué)等領(lǐng)域),建議您咨詢相關(guān)領(lǐng)域?qū)I(yè)人士。