0

当我添加该功能g2d.rotate(some Number)时,屏幕根本没有显示任何形状,没有此功能一切正常。

问题是什么?

public void paintComponent(Graphics g) {
    super.paintComponent(g);
  Graphics2D g2d = (Graphics2D)g;
    g2d.setColor(color);
    Polygon polygon = new Polygon(xCordinate,yCordinate,4);

   // g2d.rotate(Math.toRadians(45));
    g2d.draw(polygon);
    g2d.fill(polygon);
}

主要是:

public class Main extends JPanel {
    Camera c=new Camera(100, 50, (Math.PI)*2, 0, 150,200,Math.PI,Color.MAGENTA);
    //Camera c1=new Camera(100, 50, (Math.PI)*2, 0, 150,200,0,Color.black);
   public static void main(String[] a) {
      JFrame f = new JFrame();
      f.setSize(400, 400);
      f.add(new Main());
      f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      f.setVisible(true);
   }

   public void paint(Graphics g) {
      //c1.paintComponent(g);
      c.paintComponent(g);

}
}
4

1 回答 1

1

您发布的代码有几个问题:

  1. 不要覆盖paint()。你不应该直接调用paintComponent()。您只需将组件添加到面板,它将自动绘制。阅读有关自定义绘画的 Swing 教程以获取更多信息和示例。

  2. 您的多边形没有任何点。您需要为其添加 4 个点。

  3. 当您旋转一个形状时,您还需要翻译它。

查看使用形状旋转图标。源代码向您展示了如何进行旋转,或者您可以按原样使用这些类。

于 2013-08-20T14:47:36.767 回答