下面是一个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);
<HTML>
<HEAD>
<TITLE>ex22_3</TITLE>
</HEAD>
<BODY>
<applet code="ex22_3.class" width=800 height=400 >
</applet>
</BODY>
</HTML>