如何在Java中将一个Swing组件的图形图像复制到另一个

我刚刚开始我的Java编程3个月前,我的问题是 –

如何将JLabelJPanel图形复制到另一个JLabelJPanel

我用过 –

  JLabel dest = new JLabel(); dest.paint(srcLabel.getGraphics()); panel.add(dest); dest.validate(); 

但由于缺乏知识,我在这里停留。 请帮忙。

首先来看看AWT中的绘画和Swing以及执行自定义绘画 ,了解有关绘画如何工作的更多信息。

永远不要使用getGraphics ,这只是一个坏主意,并且会导致问题无止境。

一般来说,你应该避免直接调用paint ,而是使用printprintAll 。 这将禁用正常绘画过程中固有的双缓冲​​,这可能会产生问题

 JLabel srcLabel = new JLabel(); JLabel dest = new JLabel(); BufferedImage img = new BufferedImage(srcLabel.getWidth(), srcLabel.getHeight(), BufferedImage.TYPE_INT_ARGB); Graphics2D g2d = img.createGraphics(); srcLabel.printAll(g2d); g2d.dispose(); dest.setIcon(new ImageIcon(img)); 

这假定已经显示并布置了srcLabel

现在的问题是为什么? 简单地设置第二个标签的texticon属性以便与第一个标签匹配会不会更容易?