• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:JPaneの大きさ変更について)

JPaneの大きさ変更について

このQ&Aのポイント
  • JPaneの大きさを絵の大きさに合わせて変更する方法について教えてください。
  • JPaneに絵をかいて、拡大・縮小の機能を追加したいです。
  • しかし、JPanelの大きさのせいでJScrollPaneのスクロールバーが最後の絵の部分まで行かない問題が発生しました。

質問者が選んだベストアンサー

  • ベストアンサー
noname#49664
noname#49664
回答No.1

とりあえず、掲載されていたコードでは細かなエラーが多すぎて・・。 大きさを変更するchenge_sizeについては、例えばですがこんな感じで対応すればうまくいくと思います。 void chenge_size(){ this.setPreferredSize(new Dimension(WIDTH,HEIGHT)); invalidate(); // 未Layout状態にする getParent().validate(); // 組み込み元コンテナに再Layoutを要求する } ちょっと、setPreferredSizeの意味と働きがよくわかっていないのかも知れませんね。JScrollPaneに組み込まれたJPanelの大きさを変更したければ、setPreferredSizeを変更します。ただし、これだけでは再レイアウトはされないので、再レイアウトを何らかの方法で行わせる必要があります。(ここではinvalidate/validateしていますが、他にもやりかたはあります) ところで、作成したコードは、これですべてですか? それともいくらか省略しています? 省略してあるなら話は別ですが、これですべてだとしたら他にもいろいろ問題があります。MouseListenerのメソッドがない、mainがない、などなど。そのあたりはご自身でチェックしてください。

cod1989
質問者

お礼

返信ありがとうございます。 このコートはもちろん省略してあります。長すぎて800文字を越して投稿できなかったので・・・。 省略してはいけない部分を省略してしまったみたいですみません。(結構初心者なので・・・ 省略前のは多分(chenge_size以外)エラーが出てないので、そこら辺は大丈夫だと思います。 早速やってみると、ちゃんとできました。 僕は指摘されたとおり、setPreferredSizeのところがわかってないみたいですのでこれからsetPreferredSizeについて勉強します。 ありがとうございました。