- - PR -
JDesktopPaneでスクロールバーは出ないのでしょうか?
1
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2003-10-23 10:07
こんにちは。お世話になってます。
今、SwingのJDesktopPaneを使ってMDIのフォームを作っています。 で、親フレーム(JDesktopPane)の領域、子フレーム(JInternalFrame)がはみ出ると、 Windows等ではスクロールバーが表示されますが、JDesktopPaneではスクロールバー が出ません。JDesktopPaneでスクロールバーを実装する方法をご存知の方、おられま せんでしょうか?よろしくお願いします。 OS:Win2000 JDK:1.4.X | ||||
|
投稿日時: 2003-10-23 13:20
こんにちは、Wataです。
試してはいませんが、次の方法で可能だと思います。 ・まず、JDesktopPaneをJScrollPaneに入れて親フレームに配置してする。 ・インナーフレームにComponentListenerを追加して、移動、リサイズなどの イベントを監視して、必要に応じてJDesktopPaneのサイズを変更する ちなみにWindowsアプリケーションでもスクロールバーの出るものと、 出ないものがあるようですね。(Excel2002無し、Access2000ありなど) | ||||
|
投稿日時: 2003-10-23 13:29
素直な感想として、JTabbedPaneじゃだめなの?
scrollerを気にする必要がなくなると思うのだけど... # きっと、仕様としてMDI styleが指定されているのだろう。 | ||||
|
投稿日時: 2003-10-23 13:55
サンプルを作ってみました。
いちおうスクロールできます。 ただし、スクロールバーがちらついたり、インナーフレームの描画が乱れたりすることがあります。 実用にはもう一つ、二つ功夫が要りそうですね。 # ちなみに私もMDIよりタブ式の方が使いやすいと思ってるけど | ||||
|
投稿日時: 2003-10-23 14:14
こんにちは。
サンプルまで作っていただいてありがとうございました。 こちらでも、JScrollPaneとComponentListenerを連携してやっては見たのですが、 うまくいきませんでした。 このソースを参考に検討します。 なお、今は画像処理系のソフトを作ってまして、子フレーム同士を並べて見たり、統計や 解析結果などいろんな子フレームを表示するのでMDIである必要があります。 言われてみると、Windows用ソフトでもスクロールバーの出ない物も多いようですね。 OSの機能というより開発者側にゆだねられているようですね。 | ||||
|
投稿日時: 2003-10-26 08:18
方法はあります。前に同じことをしようとしたのですが、そのときに 見つけたのがまさに「JScrollableDesktopPane」というものです。 これを使えば簡単にできます。 URLを失念したのですが、上記でGoogleから検索すれば見つかります。 ># ちなみに私もMDIよりタブ式の方が使いやすいと思ってるけど 好みの問題とは思いますが、私は圧倒的にMDIの方が使いやすいと思っ ています。(このためだけでEclipseよりもNetBeanを使っているよう なもんです) 私はNetBeanを愛用していますが、これもまさにスクローラブルなMDI になっています。 | ||||
1
