public class Points extends JPanel {

  public void paintComponent(Graphics g) {
  super.paintComponent(g);

  Graphics2D g2d = (Graphics2D) g;

  g2d.drawLine(60, 20, 80, 90);
 }
}


我不太确定Graphics2D g2d = (Graphics2D) g;应该做什么。

它只是一个普通的JPanel,后来又添加到JFrame中。

如果任何人都可以给我一些建议,那将是非常有帮助的,因为我在很长一段时间内都停留在这行代码中。

最佳答案

该声明

Graphics2D g2d = (Graphics2D) g;


只是将Graphics对象强制转换为Graphics2D。它用于访问Graphics2D提供的方法。在这种情况下,没有必要,因为Graphics也具有drawLine方法,因此,如果您不需要更高级的方法(例如rotatetranslate),则可以使用

@Override
public void paintComponent(Graphics g) {
   super.paintComponent(g);
   g.drawLine(60, 20, 80, 90);
}

关于java - Java- Swing -图形2D,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16845216/

10-09 12:28