だから、ここに私の問題があります。JLabel を含む JPanel があり、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();
}