假设我们有以下情况:
JPanel panelp=new JPanel();
paintSomething(panelp.getGraphics();
以及不同对象中的其他地方,该方法:
void paintSomething(Graphics g){ /*code*/ }
我不想覆盖paintComponent
panelp
方法. 如何使用panelp
Graphics
从方法paintSomething
绘制要panelp
的东西?
whatever.getGraphics()
是快照是快照,它将在以下情况下消失
-
第一次重绘后
-
JComponets
从Mouse
或Key Events
内部重新粉刷,这些事件在混凝土JComponets API
中实现 -
使用
whatever.getGraphics()
的简单示例是打印到打印机或将当前GUI保存为打印屏幕到例如.JPEG或PGN文件
基本内容在 2D 图形中描述
paintSomething
中的内容绘制到一个BufferedImage
中,然后您可以通过覆盖paintComponent
将其绘制到面板上