ホームページ >Java >&#&チュートリアル >Java で JLabel に合わせて ImageIcon を自動的に拡大縮小する方法
ImageIcon をラベル サイズに合わせて自動的に拡大縮小する
Java では、GUI 上に画像を表示するには、ImageIcon クラスを使用する必要があります。このクラスは、ラベルなどの GUI コンポーネント内の画像の表示を管理する便利な方法を提供します。ただし、ImageIcon のデフォルトの動作は画像の元のサイズを維持することですが、これは常に望ましいとは限りません。
カスタム スケーリング
デフォルトのスケーリング動作が適切ではない場合は、拡大縮小された画像の表示を処理するカスタム コンポーネントを作成できます。この方法により、スケーリング プロセスをより詳細に制御でき、目的のフィットまたはフィル動作を指定できるようになります。
スケーラブル イメージ コンポーネントの定義
カスタム スケーラブル イメージを作成するにはコンポーネントをJPanelクラスから継承し、次のキーを実装します。 Methods:
実装例:
次の Java コードは、カスタムのスケーラブルな画像コンポーネントを示しています:
import java.awt.Dimension; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Image; import java.awt.RenderingHints; import javax.swing.JPanel; public class ScalableImage extends JPanel { // ... @Override protected void paintComponent(Graphics g) { super.paintComponent(g); if (image != null) { Graphics2D g2d = (Graphics2D) g; g2d.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR); int x = (getWidth() - image.getWidth(this)) / 2; int y = (getHeight() - image.getHeight(this)) / 2; g2d.drawImage(image, x, y, this); } } // ... }
Fit vs Fill 動作
スケーリング動作をカスタマイズして、画像をコンポーネントの寸法内に収めたり、領域全体を埋めたりすることができます。フィット動作は、アスペクト比を維持しながら、利用可能なスペース内に収まるように画像を拡大縮小します。塗りつぶし動作は、領域全体を埋めるように画像を拡大縮小し、トリミングまたは変形する可能性があります。
動的スケーリング
コンポーネントの寸法が変更されたときに画像が適切に拡大縮小されるようにするため、revalidate() メソッドまたは setSize() メソッド内で、invalidate() メソッドを呼び出します。これにより、更新された寸法に基づいてスケーリングされた画像の再生成がトリガーされます。
以上がJava で JLabel に合わせて ImageIcon を自動的に拡大縮小する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。