Итак, вот моя проблема. У меня есть JPanel с JLabel на нем, и я хочу, чтобы после того, как JLabel щелкнули, он должен изменить размер (в идеале он изменится с его масштабом, но пока я использую постоянное значение). Я вернул изображение, и теперь я могу масштабировать его, но мне просто не удается сделать исходный JLabel новым размером.
Вот что должно получиться в идеале, e.getSource должен стать только что увеличенным в размерах JLabel.
Я знаю, что я довольно близок, я сделал JOptionPane в качестве оператора отладки, чтобы увидеть, могу ли я увеличить размер, и я могу.
Почему нельзя ((JLabel)me.getSource = a; где 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();
}