Image 使一个JLabel成为另一个JLabel
所以,这是我的问题。我有一个JPanel,上面有一个JLabel,我想要的是,一旦单击了JLabel,它就应该调整大小(理想情况下,它会随着其规模而改变,但现在我使用的是一个常量值)。我已经返回了图像,现在我可以缩放它了,但是我无法将原来的JLabel变成新尺寸的 所以这是理想情况下应该发生的事情,e.getSource应该成为新增加的JLabel大小 我知道我已经非常接近了,我做了一个JOptionPane作为调试语句,看看是否可以增加大小,我可以 为什么不能((JLabel)me.getSource=a; 我的新JLabel在哪里 无论如何,这是我的代码: 请帮帮我Image 使一个JLabel成为另一个JLabel,image,jlabel,Image,Jlabel,所以,这是我的问题。我有一个JPanel,上面有一个JLabel,我想要的是,一旦单击了JLabel,它就应该调整大小(理想情况下,它会随着其规模而改变,但现在我使用的是一个常量值)。我已经返回了图像,现在我可以缩放它了,但是我无法将原来的JLabel变成新尺寸的 所以这是理想情况下应该发生的事情,e.getSource应该成为新增加的JLabel大小 我知道我已经非常接近了,我做了一个JOptionPane作为调试语句,看看是否可以增加大小,我可以 为什么不能((JLabel)me.getSo
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();
}
getSource()返回一个JLabel,它不返回一个变量,您可以为其赋值
最好的方法可能不是创建新的JLabel,而是将新的ImageIcon分配给旧的JLabel
((JLabel)me.getSource()).setIcon(新图像图标(bi))
您还需要调用label或panel updateUI()来强制进行“硬”重绘并调整大小。使用语句
((JLabel)me.getSource())=temp;
?表达式(例如((JLabel)me.getSource())
)不允许位于=。您很可能需要获取事件源的父级,删除现有标签,然后添加新标签。