所以,这是我的问题。我有一个 JPanel,上面有一个 JLabel,我想要的是一旦单击 JLabel,它应该调整大小,(理想情况下它会随着它的比例而改变,但现在我使用的是一个常量值)。我已经返回了图像,现在我可以缩放它,但我无法让原来的 JLabel 变成新尺寸的。
所以这就是理想情况下应该发生的事情,e.getSource 应该成为新增加的 JLabel 大小。
我知道我已经很接近了,我做了一个 JOptionPane 作为调试语句,看看我是否可以增加大小,我可以。
为什么不能 ((JLabel)me.getSource = a; 我的新 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();
}