我一直在尝试使用以下代码在java中绘制弧:
g.fillArc(50, 50, 100, 100, 0, 180)
其中g是图形对象。
产生下面的蓝色对象:
我实际上要做的是产生这样的东西:
提前感谢您的帮助!
答案 0 :(得分:3)
请尝试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);
}
}
}