如何在Java中将一个Swing组件的图形图像复制到另一个
我刚刚在Java
三个月前开始编程,这里的问题是-
如何将一个JLabel
或JPanel
图形复制到另一个JLabel
或图形JPanel
。
我用过了 -
<!--Source JLabel srcLabel-->JLabel dest = new JLabel();
dest.paint(srcLabel.getGraphics());
panel.add(dest);
dest.validate();
但是由于缺乏知识,我被困在这里。请帮忙。
回答:
首先查看AWT中的绘画和Swing
和执行自定义绘画,以获取有关绘画工作原理的更多信息。
永远不要使用getGraphics
,这只是个坏主意,不会给您带来麻烦。
一般来说,应避免paint
直接调用,而应使用print
或printAll
。这将禁用正常绘制过程中固有的双重缓冲,这可能会导致
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
已经显示并布置了。
现在的问题是为什么?简单地设置第二个标签的text
and icon
属性,使其与第一个标签相匹配会不会更容易?
以上是 如何在Java中将一个Swing组件的图形图像复制到另一个 的全部内容, 来源链接: utcz.com/qa/401548.html