JLabel での画像の自動サイズ変更
JLabel を使用して JPanel に画像を表示する場合、画像のサイズを自動的に調整することが望まれることがよくあります。ラベルの寸法に合わせて調整します。デフォルトでは、JLabel は元の画像のアスペクト比を維持し、ラベルの使用可能なスペースに収まるように拡大縮小します。
画像の自動サイズ変更を実現するには、JPanel を拡張し、拡大縮小された画像を処理するカスタム コンポーネントを利用する方法があります。画像のレンダリング。これにより、画像をラベル内に合わせるか塗りつぶすかを指定するなど、スケーリング動作をより詳細に制御できるようになります。
サイズ変更オプション
主なサイズ変更オプションは 2 つあります。 JLabel の画像で利用可能:
サイズ変更可能なカスタムコンポーネント画像
次のコードは、fit/fill オプションに基づいて画像のスケーリングを管理するカスタム コンポーネント ScalablePane を示しています。
public class ScalablePane extends JPanel { // ... (code omitted for brevity) @Override protected void paintComponent(Graphics g) { // Draw the scaled image super.paintComponent(g); if (scaled != null) { g.drawImage(scaled, x, y, this); } else if (master != null) { g.drawImage(master, x, y, this); } } // ... (code omitted for brevity) }
使用例
ScalablePane コンポーネントを使用するには、コンポーネントをインスタンス化し、必要な値を設定します。画像:
ScalablePane scalablePane = new ScalablePane(image); // Set the fit/fill option scalablePane.setToFit(true); // Fit image within the component // Add the component to your JPanel yourJPanel.add(scalablePane);
以上がJLabel 内の画像のサイズを自動的に変更するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。