Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在paintComponent外部进行绘制?_Java_Java 2d_Graphics2d_Paintcomponent - Fatal编程技术网

Java 如何在paintComponent外部进行绘制?

Java 如何在paintComponent外部进行绘制?,java,java-2d,graphics2d,paintcomponent,Java,Java 2d,Graphics2d,Paintcomponent,我有一个画布,它用paintComponent()方法绘制所有内容 是否可以在paintComponent外部绘制(无需调用paintComponent中的方法) 如果是这样的话,你怎么做呢?这取决于你的意思和你为什么需要它。例如,可以创建一个BufferedImage,获取Graphics2D对象,Graphics.paint()图像上的所有内容,然后将图像放入JLabel中 但由于我不知道你想要实现什么(与你想要做的相反),我不知道这个答案是否解决了未说明的问题。我找到了解决这个问题的方法

我有一个画布,它用
paintComponent()
方法绘制所有内容

是否可以在
paintComponent
外部绘制(无需调用
paintComponent
中的方法)


如果是这样的话,你怎么做呢?

这取决于你的意思和你为什么需要它。例如,可以创建一个
BufferedImage
,获取
Graphics2D
对象,
Graphics.paint()
图像上的所有内容,然后将图像放入
JLabel


但由于我不知道你想要实现什么(与你想要做的相反),我不知道这个答案是否解决了未说明的问题。

我找到了解决这个问题的方法

我所做的是使JPanel成为我的JFrame类的内部类

在JPanels paintComponent中,我让它从外部类调用一个方法,该类通过传递paintComponents Graphics2D对象来更新图形


这使我能够根据需要在paintComponent的“外部”进行绘制。

您永远不应该这样做。所有绘制代码都应包含在paintComponent()方法或由paintComponent()方法调用的子方法中。永远不要直接调用此子方法。如果您认为您需要这样做,那么您的程序设计错误。