簡體   English   中英

如何在Java中將一個Swing組件的圖形圖像復制到另一個

[英]How to copy Graphics Image of one Swing Component to another in Java

我在3個月前和這里才開始Java編程,當時遇到的問題是-

如何將JLabelJPanel圖形復制到另一個JLabelJPanel

我用過 -

<!--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已經顯示並布局。

現在的問題是為什么? 簡單地設置第二個標簽的texticon屬性使其與第一個標簽相匹配會不會更容易?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM