下面是一个Applet程序,实现实心或者空心矩形的绘制。要求鼠标在Applet窗口中拖动实现矩形的绘制,可以选择填充或者空心,有按钮用来清空窗口中的图像。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。
注意:不改动程序的结构,不得增行或删行。
程序运行结果如下:
import java.awt.*;
import java.applet.*;
/*
<applet code="ex13_3.class" width=800 height=400 >
</applet>
*/
public class ex13_3 extends Applet{
private Button btnClear;
private CheckboxGroup cbg;
private Checkbox chk1, chk2;
private int upX, upY;
private int downX, downY;
private boolean bDraw, bClear, bStyle;
public void init(){
bDraw = false;
bClear = false;
bStyle. = false;
setLayout(null);
cbg = new CheckboxGroup();
chk1 = new Checkbox("Hollow", cbg, true);
chk2 = new Checkbox("Filled", cbg, false);
chk1.reshape(80,getSize().height-80,80,25);
chk2.reshape(160,getSize().height-80,80,25);
add(chk1);
add(chk2);
btnClear = new Button("clear");
btnClear.reshape(240,getSize().height-80,80,25);
add(btnClear);
}
public void paint(Graphics g){
if(bDraw){
if(upX > downX && upY > downY){
if (bStyle)
g. fillRect (downX, downY, upX - downX, upY - downY);
else
g.drawRect(downX, downY, upX - downX, upY - downY);
}
else if(upX > downX && upY < downY){
if(bStyle)
g.fillRect(downX, upY, upX - downX, downy - upY);
else
g.drawRect(downX, upY, upX - downX, downy - upY);
}
else if(upX < downX && upY > downY){
if(bStyle)
g.fillRect(upX, downY, downX - upX, upY - downY);
else
g.drawRect(upX, downY, downX - upX, upY - downY);
}
else if(upX < downX && upY < downY){
if(bStyle)
g.fillRect(upX, upY, downX - upX, downy - upY);
else
g.drawRect(upX, upY, downX - upX, downy - upY);
}
bDraw = false;
}
if(bClear)(
g.clearRect(0,0, getSize().height, getSize().width);
b
第1题:
下面是一个Applet程序,程序的功能输出一个彩色窗体。请改正程序中的错误(有下划线的语句),使程序能输出正确结果。
注意:不改动程序的结构,不得增行或删行。
程序的输出结果为:
import java.awt.*;
import java.awt.image.*;
import java.applet.Applet;
public class MemoryImage extends Applet
{
Image IMG nClick=over(this) title=放大;
public void init()
{
Dimension d=getSize();
int w=d.width,h=d.height;
int pix[ ]=new int[w*h];
int index=0;
for(int y=0;y<h;y++)
for(int x=0;x<w;x++)
{
int red=(x|y)&&0xff;
int green=(x*2|y*2)&0xff;
int blue=(x*4|y*4)&0xff;
pix[index++]=(255<<24)|(red<<16)|(green<<8)|blue;
}
IMG nClick=over(this) title=放大=createImage(new FilteredImageSource(w,h,pix, 0,w));
}
public void paint(Graphics g)
{
g.drawImage(IMG nClick=over(this) title=放大, 0,0,super);
}
}
ex36_3.html:
<html>
<head>
<title>A Simple Program</title>
</head>
<body>
<applet code=" MemoryImage.class" width=800 height=400>
</applet>
</body>
</html>
第2题:
下面是一个Applet程序,其功能是用一组坐标点绘制一个多边形,并通过沿坐标的垂直方向移动,把它移到窗口的下半部分,然后填充它。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。
注意:不改动程序的结构,不得增行或删行。
源程序文件清单如下:
import java.awt.*;
import java.applet.*;
/*
<applet code="ex11_3.class"width=800 height=400>
</applet>
*/
public class ex11_3 extends Applet
{
int[] x = {15,50,100,160,120,190 };
int[] y = {15,100,30, 15, 80, 50 };
public void init()
{
setBackground (Color. lightGray);
}
public void paint (Graphics g)
{
int[] y2 = new int[6];
g. setColor (Color. red);
Rectangle rect = getBounds();
g.drawPolygon (x, y2,6);
for(int i=0; i<6; i++)
y2[i] = y[i] + (rect.height / 2);
g. fillPolygon (x, y, 6);
}
}
ex11_3. html
<HTML>
<HEAD>
<TITLE>ex11_3</TITLE>
</HEAD>
<BODY>
<applet code="ex11_3.class" width=800 height=400 >
</applet>
</BODY>
</HTML>
第3题:
2、设需要选一个窗,要求实现的最小阻带衰减是45db,可以选择的窗有
A.矩形窗。
B.Hann窗。
C.Hamming窗。
D.Blackman窗。
第4题:
下面是一个Applet程序,其功能是分析任意输入的字符串,将字符串中由空格隔开的字串提取并显示出来。要求,窗口中有一个输入文本框,用于接受输入的字符串,一个按钮,点击则开始分析,分析结果用图形方式打印在窗口下面的区域中。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。
注意:不改动程序的结构,不得增行或删行。
程序运行结果如下:
import java.awt.*;
import java.applet.*;
import java.util.StringTokenizer;
public class ex27_3 extends Applet{
private TextField tf;
private Button btn;
public void init(){
tf = new TextField(25);
add(tf);
btn= new Button("分析");
add(btn);
resize(250, 200);
}
public void paint(Graphics g){
String str = tf.getText();
StringTokenizer st = new StringTokenizer(tf);
int n = 80;
while (!st.hasMoreTokens()){
String tem = st.nextToken();
g.drawString(tem, n, 80);
n += 20;
}
}
public boolean action(Event e, Object o){
if (o == "分析") {
repaint();
return true;
}
else
return false;
}
}
ex27_3.html
<HTML>
<HEAD>
<TITLE>ex27_3</TITLE>
</HEAD>
<BODY>
<applet code="ex27_3.class" width=800 height=400
</applet>
</BODY>
</HTML>
第5题:
下面是一个Applet程序,其功能是在窗口中绘制3个半径递增的圆,并用RGB三原色对这 3个圆填充。要求建立一个绘制圆的类,实现根据指定颜色进行填充的功能,在主程序中通过调用这个类的方法实现圆的绘制。请改正程序中的错误(有下画线的语句),使程序能输出正确的结果。
注意:不改动程序的结构,不得增行或删行。
import java.applet.*;
import java.awt.*;
import java.awt.*;
/*
<applet code="ex15_3.class"width=800 height=400>
</applet>
*/
class CanvasCircle extends Canvas{
private Color cCircle;
public CanvasCircle(Color c){
cCircle=c;
}
public void paint(Graphics g){
int dimCircle,xCircle,yCircle;
Dimension sizeCurrent=getSize();
if(sizeCurrent.width>sizeCurrent.height){
dimCircle=sizeCurrent.width;
}
else{
dimCircle=sizeCurrent.height;
}
g.setColor(cCircle);
xCircle=(sizeCurrent.heighe-dimCircle)/2;
yCircle=(sizeCurrent.width-dimCircle)/2;
g.fillOval(xCircle,yCircle,dimCircle,dimCircle);
}
}
public class exl5_3 extends Applet{
public void init(){
GridBagLayout gbl=new GddBagLayout();
GridBagConstraints gbc=new CridBagConstraints();
CanvasCircle circleNew;
setLayout(gbl);
gbc.weightx=1.0;
gbc.weighty=1.0;
gbc.fill=GridBagConstraints.BOTH;
circleNew=new CanvasCircle(Color.red);
gbl.setConstraints(circleNew,gbc);
add(circleNeW);
gbc.weightx=1.5;
gbc.weighty=1.5;
circleNew=new CanvasCircle(Color.green);
gbl.sctConstraints(eircleNew,gbc);
add(circleNew);
gbc.weightx=2.0;
gbc.weighty=2.0;
circleNew=new CanvasCircle(Color.blue);
gbl.setConstraints(circleNew,gbc);
add(circleNew);
}
}
ex15_3.html
<HTML>
<HEAD>
<TITLE>ex15_3</TITLE>
</HEAD>
<BODY>
<applet code="ex15_3.class"width=800 height=400>
</applet>
</BODY>
</HTMI>