java如何扇形
在Java中绘制扇形可以通过Graphics或Graphics2D类实现,通常结合fillArc或drawArc方法。以下是具体实现方法:
使用fillArc绘制填充扇形
fillArc方法可以绘制填充的扇形,参数包括起始角度和扇形角度(逆时针方向):
import javax.swing.*;
import java.awt.*;
public class FanShape extends JPanel {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.RED);
g.fillArc(50, 50, 200, 200, 0, 90); // x, y, width, height, startAngle, arcAngle
}
public static void main(String[] args) {
JFrame frame = new JFrame("扇形示例");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(new FanShape());
frame.setSize(300, 300);
frame.setVisible(true);
}
}
使用drawArc绘制空心扇形
drawArc方法仅绘制扇形边框,参数与fillArc相同:
g.setColor(Color.BLUE);
g.drawArc(50, 50, 200, 200, 90, 120); // 起始角度90度,扇形角度120度
使用Graphics2D实现更复杂效果
通过Graphics2D可设置描边粗细、抗锯齿等高级效果:
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g2d.setStroke(new BasicStroke(3));
g2d.setColor(new Color(0, 128, 0));
g2d.fillArc(50, 50, 200, 200, 180, 135); // 绿色填充扇形
}
动态调整扇形角度
结合变量控制扇形角度,实现动态效果(如动画):

int angle = 0; // 可通过定时器改变此值
g.fillArc(50, 50, 200, 200, 0, angle);
注意事项
- 角度参数中,0度指向正右方,角度增加方向为逆时针。
- 若需扇形与其他图形叠加,注意绘制顺序(后绘制的图形覆盖先绘制的)。
- 在Swing组件中,自定义绘制需重写
paintComponent而非paint。






