我一直在尝试使用以下代码在 java 中绘制弧线:
g.fillArc(50, 50, 100, 100, 0, 180)
其中 g 是图形对象。
这会产生下面的蓝色对象:
我实际上想要做的是产生如下所示的东西:
提前感谢您的帮助!
试试g.fillArc(50, 50, 100, 100, 180, 180)
吧。
基本上,第一个角度是从哪里开始,第二个角度是它应该穿过的度数(从开始)。
所以如果你只想要一个 5 度的饼图,你会使用类似的东西g.fillArc(50, 50, 100, 100, 0, 5)
查看Graphics#fillArc
和Graphics2D了解更多信息
工作示例
public class PaintTest03 {
public static void main(String[] args) {
new PaintTest03();
}
public PaintTest03() {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (ClassNotFoundException ex) {
} catch (InstantiationException ex) {
} catch (IllegalAccessException ex) {
} catch (UnsupportedLookAndFeelException ex) {
}
JFrame frame = new JFrame("Test");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(new BorderLayout());
frame.add(new PaintPane());
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
});
}
public class PaintPane extends JPanel {
@Override
public Dimension getPreferredSize() {
return new Dimension(100, 100);
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.RED);
g.fillArc(0, 0, 100, 100, 180, 180);
}
}
}