私は Java の旅を始めて、swing で遊んでいます。内部にJScrollPaneを含む単純なJFrameをいくつか作成しました。フレームを事前設定された最小サイズと最大サイズに制限する方法を探しています。setMaximumとsetMinimumとそれらがどれほど間違っているかについてネットを検索しましたが、何も見つかりませんでした(いくつかの奇妙なComponentListenerを除いて)。ただし、 setMinimumは (少なくとも今のところ)正常に動作していますが、 setMaximumを動作させることができません。どうすればそのような制約を設定できますか?
編集:
「いくつかの奇妙なComponentListenerを除いて」とは、フレームのサイズを変更してから、サイズを元に戻すことができるということです。私が達成したいのは、フレームがそれ以上進むのを防ぐ目に見えないバウンドです。
EDIT2:
この問題は私のOS(OSX)に関係しているようです。ComponentListenerはWindowsで正常に動作します。しかし、Mac では、ウィンドウのドラッグを開始すると、ComponentMovedが呼び出され、マウス ボタンを放したときにのみComponentResizedが呼び出されます。コードをResizedからMovedにコピーすると、最初にウィンドウがMaximumSizeを超えて数分の一秒でサイズ変更され、次に適切なコードが呼び出され、すべて問題ありませんが、このちらつきは受け入れられません。paint(Graphics g)をオーバーロードして、最初にサイズをリセットしてからsuper.paintを呼び出しましたが、結果は同じでした。