Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.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 在组件外部使用图形_Java_Swing_Graphics_Paintcomponent - Fatal编程技术网

Java 在组件外部使用图形

Java 在组件外部使用图形,java,swing,graphics,paintcomponent,Java,Swing,Graphics,Paintcomponent,假设我们有以下情况: JPanel panelp=new JPanel(); paintSomething(panelp.getGraphics(); 在另一个对象的其他地方,方法: void paintSomething(Graphics g){ /*code*/ } 我不想覆盖panelp的paintComponent方法。如何通过使用panelp图形绘制某物的方法向panelp绘制某物 您可以将paintSomething中的内容绘制到缓冲区图像中,然后通过覆盖paintCompone

假设我们有以下情况:

JPanel panelp=new JPanel();
paintSomething(panelp.getGraphics();
在另一个对象的其他地方,方法:

void paintSomething(Graphics g){ /*code*/ }

我不想覆盖panelp的paintComponent方法。如何通过使用panelp图形绘制某物的方法向panelp绘制某物

您可以将paintSomething中的内容绘制到缓冲区图像中,然后通过覆盖paintComponent将其绘制到面板中

无论什么。getGraphics是snapshot是在

第一次重新喷漆后

JComponets是从鼠标事件或按键事件内部重新绘制的,这些事件在具体的JComponets API中实现

使用which.getGraphics打印到打印机或将当前GUI另存为printscreen到例如JPEG或PGN文件的简单示例


基本内容在

中有描述,为什么不覆盖paintComponent?这是在Swing中进行自定义绘制的推荐方法。panelp中是否有任何组件?是的,它有许多组件。我想在这些组件之间制作一些动画。我不能。我想在面板上创建一些动画,比如微软word的Clippy+1你刚刚解决了我脑后的一个问题!哦,那么有没有一种方法可以从外部向组件绘制一些东西呢?@ClaudiuC:例如,使用BuffereImage。如果你是从另一个类、方法或void生成的,那么基本上是的,不知道这有什么问题,你可以通过Swing Timer将对象数组延迟到paintComponent,