问答题
下面是一个Applet程序,其功能是在窗口中绘制3个半径递增的圆,并用RGB三原色对这3个圆填充。要求建立一个绘制圆的类,实现根据指定颜色进行填充的功能,在主程序中通过调用这个类的方法实现圆的绘制。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。
注意:不改动程序的结构,不得增行或删行。
程序运行结果如下:
import java.applet.*;
import java.awt.*;
import java.awt.*;
/*
<applet code="ex22_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 dimCricle, xCircle, yCircle;
Dimension sizeCurrent = getSize();
if (sizeCurrent.width > sizeCurrent.height){
dimCricle = sizeCurrent.width;
}
else{
dimCricle = sizeCurrent.height;
}
g.setColor(cCircle);
xCircle = (sizeCurrent.height - dimCricle) / 2;
yCircle = (sizeCurrent.width - dimCricle) / 2;
g.fillOval(xCircle, yCircle, dimCricle, dimCricle);
}
}
public class ex22_3 extends Applet{
public void init(){
GridBagLayout gbl = new GridBagLayout();
GridBagConstraints gbc = new GridBagConstraints();
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.setConstraints(circleNew, gbc);
add(circleNew);
gbc.weightx = 2.0;
gbc.weighty = 2.0;
circleNew = new CanvasCircle(Color.blue);
gbl.setConstraints(circleNew, gbc);
add(circleNew);
}
}
ex22_3.h tml
<HTML>
<HEAD>
<TITLE>ex22_3</TITLE>
</HEAD>
<BODY>
<applet code="ex22_3.class" width=800 height=400 >
</applet>
</BODY>
</HTML>
【参考答案】
sizeCurrent.width<sizeCurrent.height xCircle= (sizeCurrent.w......
(↓↓↓ 点击下方‘点击查看答案’看完整答案 ↓↓↓)