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

我刚刚在Java三个月前开始编程,这里的问题是-

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

我用过了 -

<!--Source JLabel srcLabel-->

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已经显示并布置了。

现在的问题是为什么?简单地设置第二个标签的textand icon属性,使其与第一个标签相匹配会不会更容易?

以上是 如何在Java中将一个Swing组件的图形图像复制到另一个 的全部内容, 来源链接: utcz.com/qa/401548.html

回到顶部