[英]How to copy Graphics Image of one Swing Component to another in Java
我在3個月前和這里才開始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
和icon
屬性使其與第一個標簽相匹配會不會更容易?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.