java 在哪里可以找到实现的抽象Graphic类?

ddrv8njm  于 2023-04-19  发布在  Java
关注(0)|答案(1)|浏览(99)

paintComponent传入一个抽象类,可以在上面执行函数,反正听起来不真实的,所以肯定有具体Graphics的定义,我在琢磨能不能引用那个具体类,能不能跳过重新定义paintComponent进程直接画东西。

vnzz0bqm

vnzz0bqm1#

实际上,查看API,JComponent.paint()方法需要一个参数:Graphics,一个抽象类。
但这只是API,这意味着在运行时需要传递一些简洁的实现。如果你阅读API文档,有两个已知的子类:DebugGraphics(不是抽象的)和Graphics2D(又是抽象的)。
当你运行一些Swing应用程序时,你会看到组件接收Graphics 2D的实现。在我的java-11-openjdk-amd 64中,类sun.java2d.SunGraphics2D是一个简洁的类。
您可以通过子类化任何JComponent并使用

public void paint(Graphics g) {
    System.out.println(g.getClass().getName());
    super.paint(g);
}

相关问题