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()方法调用的子方法中。永远不要直接调用此子方法。如果您认为您需要这样做,那么您的程序设计错误。