したがって、私のプログラムは MigLayout GUI を作成し、作成時にイメージが与えられる一連の JLabels を持っています。ここで、現在の最終結果を確認できます。
画像が大きすぎて、含まれているJPanelのサイズを超えています。元の画像のサイズになるように作成して表示するだけですが、明らかに問題です。サイズを修正して、GUI のすべてのコンポーネントに収まるようにする方法はありますか?
まず、青い部分がそのようにずれないようにしたいので、設定されたサイズ(高さの半分)を維持したいと思います。また、元の画像の縦横比を維持しながら、画像が可能な最大サイズを占めるようにしたいと考えています。
JLabel のサイズと優先サイズを設定しようとしましたが、MigLayout で JLabel を追加するように指示したときにパラメーターを指定しようとしましたが、どちらもうまくいきませんでした。私は JLabel を拡張し、それを修正するために何かを書くというアイデアを楽しんでいますが、それについてどうすればよいか完全にはわかりません。ペイントを上書きできることは知っていますが、実際に何をしなければならないかわかりません。
私のJPanelは次のように設定されています:
JPanel jpCards = new JPanel(new MigLayout("insets 0, gapx 0, gapy 0, wrap 7", "grow"));
私のカードは追加のパラメーターなしで追加され、表示されたサイズの写真を提供するだけで作成されます.
明確にするために、後でマウスリスナーを使用するため、内部に含まれるものだけでなく、実際の JLabel のサイズを変更する必要があります。画像だけが変更された場合、マウス リスナーが JLabel 内で自分自身を検出して、本来あるべきように見えないという問題が発生します。