所以,這是我的問題。我有一個Janel,上面有一個JLabel,我想要的是一旦JLabel被點擊,它應該調整大小,(理想情況下它會隨着它的規模而改變,但現在我正在使用一個常量值)。我已經返回了這張圖片,現在我可以對它進行縮放,但是我無法將原來的JLabel變成新的尺寸。使JLabel成爲另一個JLabel
所以這是理想情況下應該發生的事情,e.getSource應該成爲JLabel的新增加尺寸。
我知道我非常接近,我做了一個JOptionPane作爲調試語句,看看我是否可以增加大小,我可以。
爲什麼不能((JLabel的)me.getSource =一; 其中一個是我的新的JLabel
不管怎麼說,這裏是我的代碼:?
請幫我
public void mousePressed(MouseEvent me) {
//GreetingCard.setBackground.findComponentAt(me.getX(), me.getY());
//GreetingCard.setBackground.findComponentAt(me.getX(), me.getY)
JLabel a= (JLabel) me.getSource();
Icon icon = a.getIcon();
int scale = 4;
BufferedImage bi = new BufferedImage(
scale*icon.getIconWidth(),
scale*icon.getIconHeight(),
BufferedImage.TYPE_INT_ARGB);
Graphics2D g = bi.createGraphics();
g.scale(scale,scale);
icon.paintIcon(null,g,0,0);
g.dispose();
JLabel temp = new JLabel(new ImageIcon(bi));
((JLabel)me.getSource())= temp;
JOptionPane.showMessageDialog(
null,
new JLabel(new ImageIcon(bi)));
System.out.println("The size of the image is" + b.getIconWidth());
initiateEvent = me;
me.consume();
}
你想用語句'((JLabel)me.getSource())= temp;'來實現什麼?表達式(例如'((JLabel)me.getSource())')不允許在=的左側。您很可能需要獲取事件源的父級,刪除現有標籤並添加新標籤。 – Zoe