2

したがって、私のプログラムは MigLayout GUI を作成し、作成時にイメージが与えられる一連の JLabels を持っています。ここで、現在の最終結果を確認できます。

http://i.imgur.com/evI0sYT.jpg

画像が大きすぎて、含まれているJPanelのサイズを超えています。元の画像のサイズになるように作成して表示するだけですが、明らかに問題です。サイズを修正して、GUI のすべてのコンポーネントに収まるようにする方法はありますか?

まず、青い部分がそのようにずれないようにしたいので、設定されたサイズ(高さの半分)を維持したいと思います。また、元の画像の縦横比を維持しながら、画像が可能な最大サイズを占めるようにしたいと考えています。

JLabel のサイズと優先サイズを設定しようとしましたが、MigLayout で JLabel を追加するように指示したときにパラメーターを指定しようとしましたが、どちらもうまくいきませんでした。私は JLabel を拡張し、それを修正するために何かを書くというアイデアを楽しんでいますが、それについてどうすればよいか完全にはわかりません。ペイントを上書きできることは知っていますが、実際に何をしなければならないかわかりません。

私のJPanelは次のように設定されています:

JPanel jpCards = new JPanel(new MigLayout("insets 0, gapx 0, gapy 0, wrap 7", "grow"));

私のカードは追加のパラメーターなしで追加され、表示されたサイズの写真を提供するだけで作成されます.

明確にするために、後でマウスリスナーを使用するため、内部に含まれるものだけでなく、実際の JLabel のサイズを変更する必要があります。画像だけが変更された場合、マウス リスナーが JLabel 内で自分自身を検出して、本来あるべきように見えないという問題が発生します。

4

1 に答える 1

1

JLabelを作成する前にアイコンのサイズを変更することでこれを解決しました。

Java では、ある種の画像を指定して JLabel を作成すると、JLabel のサイズが、指定した画像のサイズに適合することがわかりました。したがって、元の画像を指定して JLabel を作成する代わりに、最初に画面の寸法を使用して拡大縮小し、それから JLabel を作成します。

ユーザーが画面のサイズを変更して画像のサイズを変更できるようにしたいので、まだやるべきことがいくつかあります。サイズを変更する方法を理解するのに少し時間を費やす必要がありますが、それは大きな問題ではありません.

于 2013-03-26T20:11:58.740 に答える