1. ホーム
  2. java

[解決済み] JLabel ImageIconのサイズを変更する方法は?

2022-02-26 12:47:31

質問

Java Swingアプリケーションを作っているのですが、以下のようなレイアウトになっています( MigLayout ):

[icon][icon][icon][....]
where icon = jlabel and the user can add more icons

ユーザーがアイコンを追加したり削除したりすると、他のアイコンが縮小したり拡大したりするようにします。

私の質問は本当に簡単です。私は JLabel を含み、その中に ImageIcon このアイコンのサイズを変更するにはどうしたらよいでしょうか?

解決方法は?

アイコンのサイズを変更するのは簡単ではありません。画像を拡大縮小するには、Javaのグラフィック2Dを使用する必要があります。最初のパラメータはImageクラスで、これは以下から簡単に取得できます。 ImageIcon クラスがあります。このクラスでは ImageIcon クラスで画像ファイルをロードし、ゲッターメソッドを呼び出すだけで画像を取得できます。

private Image getScaledImage(Image srcImg, int w, int h){
    BufferedImage resizedImg = new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB);
    Graphics2D g2 = resizedImg.createGraphics();

    g2.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
    g2.drawImage(srcImg, 0, 0, w, h, null);
    g2.dispose();

    return resizedImg;
}