Java Applet开发:如何实现圆/椭圆四等分并为各区域填充不同颜色
如何用Java Applet将圆分成四等份并填充不同颜色?
嘿,作为Java Applet新手,你的思路方向是对的——用十字线分割圆,但原代码里有两个关键问题需要修正:一是不存在g.fillColor()这个方法,设置颜色应该用g.setColor();二是你只画了分割线,却没有填充对应的扇形区域。
要实现四等分圆并填充不同颜色,我们可以用Graphics类的fillArc()方法,它能绘制并填充指定起始角度和扫过角度的扇形,正好适合画四分之一圆。下面是修改后的完整代码:
import java.applet.*; import java.awt.*; /*<applet code = "Oval.class" width = 300 height = 300> </applet>*/ public class Oval extends Applet { public void init() { // 这里可以初始化一些参数,暂时不需要额外操作 } public void paint(Graphics g) { // 先画整个圆的边框(可选,方便看轮廓) g.drawOval(100, 100, 200, 200); // 填充第一象限(右上):起始角度0°,扫过90° g.setColor(Color.RED); g.fillArc(100, 100, 200, 200, 0, 90); // 填充第二象限(左上):起始角度90°,扫过90° g.setColor(Color.BLUE); g.fillArc(100, 100, 200, 200, 90, 90); // 填充第三象限(左下):起始角度180°,扫过90° g.setColor(Color.GREEN); g.fillArc(100, 100, 200, 200, 180, 90); // 填充第四象限(右下):起始角度270°,扫过90° g.setColor(Color.ORANGE); g.fillArc(100, 100, 200, 200, 270, 90); // 画十字分割线,放在填充之后,确保线条在最上层 g.setColor(Color.BLACK); g.drawLine(100, 200, 300, 200); // 水平中线 g.drawLine(200, 100, 200, 300); // 垂直中线 } }
关键代码解释:
fillArc(int x, int y, int width, int height, int startAngle, int arcAngle):x,y:扇形所在椭圆的左上角坐标,和drawOval的参数一致width,height:椭圆的宽高,这里是200x200,所以是正圆startAngle:扇形的起始角度(0°对应右侧水平方向,顺时针为正方向)arcAngle:扇形扫过的角度,四等分圆所以每个扇形扫过90°
- 把分割线放在填充之后绘制,这样线条会覆盖在彩色扇形上,分割效果更明显
- 类名改成了
Oval(首字母大写,符合Java命名规范)
这样运行applet后,你就能看到一个被分成四个彩色象限的圆啦!
内容的提问来源于stack exchange,提问作者Mr. T-REX




