• ベストアンサー

スクロールパネルの使い方

スクロールパネルが上手く使えなく困っております。 現在の私の状況: フレームの上にメインパネルを張る。 メインパネルの上にスクロールパネルを張る。 スクロールパネルの上にサブパネルを張る。 下から フレーム ↓ メインパネル ↓ スクロールパネル ↓ サブパネル です。 サブパネルの高さが変わるので、スクロールパネルを使用したのですが、サブパネルの高さがスクロールパネルの高さ以上になってもスクロールパネルの上下スクロールバーが表示されません。 なぜでしょうか? 説明不足している個所がありましたらご指摘ください。

  • t-tree
  • お礼率83% (183/218)
  • Java
  • 回答数2
  • ありがとう数3

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

  • ベストアンサー
  • Harry_
  • ベストアンサー率55% (36/65)
回答No.2

> ご回答ありがとうございました。 > AWTです。 じゃあNo.1の回答は的外れです。 忘れてください。 サイズだけはスクロールペインよりも大きいけれど、 空っぽのパネルがスクロールできない、 ということですか。 スクロールペインは、子コンポーネントの getPreferredSize() メソッドを呼び出して、 子コンポーネントの大きさを知ります。 getSize() ではありません。 そして、それに対応する setPreferredSize() メソッドは、Swing にはありますが、AWT には ありません。 たとえば、次のように Panel を継承したクラスを 使えば、望みの振舞いをしそうですが、 こんなことしていいのかよく知りません。 このコードそのままじゃきっとまずいです。 せめて、内部で super.getPreferredSize() を呼び出して、その値が望んでる値より小さいとき だけ、値をすりかえるとか、そういう処理なら 多分問題ないでしょう。 Panel pane = new Panel() {  public Dimension getPreferredSize() {   return new Dimension(500, 500);  } }; ScrollPane scroller = new ScrollPane(); scroller.setSize(100, 100); scroller.add(pane);

t-tree
質問者

お礼

度々のご回答ありがとうございました。 Harryさんからのご回答にヒントを得て?サブパネルのサイズ設定後に[validate]というメソッドを発行したらスクロールできました。なぜだかわかりませんがうまくいきました。

その他の回答 (1)

  • Harry_
  • ベストアンサー率55% (36/65)
回答No.1

Swing ... でしょうか。 スクロールペインに貼り付け(?)てる サブパネルの高さというのは、プログラム中で 変化させてるわけですか? その箇所の後で revalidate() メソッドを呼び出したら どうなります?

t-tree
質問者

お礼

ご回答ありがとうございました。 AWTです。 >サブパネルの高さというのは、プログラム中で >変化させてるわけですか? ハイ、変えます。 しかし問題は、サブパネルはデフォルトでスクロールパネルより大きいのにも関わらずスクロールが出ないという事です。 その箇所というのは、サブパネルの高さを変える箇所でしょうか?

関連するQ&A

  • パネルのフォーカス移動

    フレームにメインパネルを一枚置いております。 そのメインパネルの上に6枚のサブパネルが置かれています。 その6枚のサブパネルをフォーカス移動したのですが、どのようにフォーカスを取得すればよいのでしょうか?

    • ベストアンサー
    • Java
  • パネルをスクロールするには?

    パネルをスクロールしたいのです。 ・パネルは高さが条件によって変わります。 ・スクロールは縦です。 以上の事を踏まえて、パネルにスクロールバーを追加しました。しかし、スクロールしてもパネルが上下に動きません・・・ パネルを動かすために必要な事を教えてください。 Scrollbar scrollbar = new Scrollbar(); this.add(scrollbar, null); scrollbar.setBounds(new Rectangle(220, 15, 15, 180)); 以上の事で追加はできたのですが、パネルと連動するにはどんな制御が必要でしょうか?

    • ベストアンサー
    • Java
  • ★質問★スクロールバーを使わずに、スクロールをする

    皆様、お世話になります。 質問です。 ※i frame での使用です スクロールバーを使わずに、スクロールをする 技ってありますか? フレーム内は、他のサイトのページが閲覧できるように なってますが、超縦長なのでスクロールバーが出ます。 単にスクロールバーを「消す処理」の設定すると、 フレーム内は見れなくなりますし。。。 付け足すと、スクロールバーを使わない代わりに、 何か変わりになるボタン?(GUI) を割り当てて、それをクリックする事で 上下させたいのですが。。 ※中身の内容を自動で上下させるのではありません ↑マーキー見たいなものではないです。 あくまで、オンマウス的な技。 FLASH以外でお願いします。 説明が下手で恐縮です。。。。orz 何卒宜しくお願いします。 助けてください。。。

    • ベストアンサー
    • HTML
  • スクロールバーが表示されない・・・

    最近初めてHPビルダー8でサイトを作成しています。 なんとか順調に行ってネット上に公開までいったのですが、トップページでフレームと言うのでしょうか?? 左のフレーム側の方はスクロールバーが表示されるのですが、右側のページの方はスクロールバーが表示されないのです。 ビルダーのプレビューで見る時にはあるのですか、ネット上で見るとなくなってるのです。 ビルダーにあるフレーム属性の変更のスクロールバーの所を「あり」にしたり、ページの下の方に文字を置いたりしたのですが、ネット上で見るとどうしてもスクロールバーが出てくれません。 あと、パソコンはWindousを使っています。 説明不足かもしれないのですが…あまりパソコンに詳しくないのでどうぞ宜しくお願い致します!!

  • フレームのスクロール

    ご質問させていただきます。 1つのページを上下2つのフレームに分けます。 そして、下のフレームのページを左右にスクロールさせると、 同じように上のページが自動的に左右にスクロールする。 といったことは可能でしょうか? 上のフレームに表のタイトル 下のフレームに表のデータ を表示させようと考えています。 アドバイスよろしくお願い致します。

    • ベストアンサー
    • HTML
  • 同時にパネルを水平スクロールさせる

    VB2008で二つのpanel(splitcontainerではない)を用いたアプリケーションを作成しています。 片方のパネルの水平スクロールバーを動かしたら、もう片方も一緒に水平にスクロールさせるようにしたいのですがどうしたらよいのか分かりません。 パネルは、上下に並べないといけません。 どなたかご教授お願いします。

  • フレームのスクロール設定について

    HPリニューアルにともない、スタイルシートとフレーム(上に1つ、下に右左2つの計3つのフレーム)を使ってプログラミングしているのですが、スクロールバーの設定がうまくできません。 TOPページにはスクロールバーは表示したくないので、フレームと一緒にスクロール非表示の設定にしてあるのですが、そうすると他のページにリンクせててもスクローリングされません。 autoに設定するとTOPページにもスクロールバーが表示されてしまい、ほかになにか方法があれば教えていただきたいです。 よろしくおねがいいたします。

    • ベストアンサー
    • HTML
  • フレームのスクロールをできなくしたい。

    左右に分けて、右のフレームを上下に分けています。 右上のフレームをスクロールしないようにしたいのです。 スクロールバーの非表示をしたり、 フレームのサイズを不変にしたりしてみたのですが、 マウスで動かすとスクロールできてしまいました。 スタイルシートを使わない方法を教えてください。 もし方法がない場合でも、ないことを教えていただけると助かります。 どなたかよろしくお願いします。

  • フレームの仕様について

    例えば <frameset rows="○○px,100%"> <frame src="○○" scrolling="no" noresize frameborder="no" name="head"> <frame src="○○" noresize frameborder="no" name="contents"> </frame>でフレームを上下で分割した時に、上のフレームでは上下左右のスクロールバーが出ない設定にしてあるのですが、下のフレームではスクロールバーが表示される様に設定してあります。この時に、下のフレームで上下のスクロールバーだけを表示させたいと思っているので左右のスクロールバーを表示させたくありません。どうすればよろしいのでしょうか。

    • ベストアンサー
    • HTML
  • ドリームウィーバーのフレームサイズ表示について

    はじめて、複数フレームの使用のページを、DW4で、作成しました。   フレームを、上・下・左と、右がメインと4つ分けているのですが、まず上の幅を80ピクセルで横いっぱいに・下の幅を80ピクセルで横いっぱいに・左の幅を130ピクセルにで上下の間に挟まれた状態で、どのブラウザのサイズでも固定して見えるようにしたいのですが、どうすれば良いのでしょうか。  ちなみに、右のメイン画面以外は、スクロールバーを出さないようにしたいのです。 現在作成した状態ですと、左のフレームがスクロールできず(スクロールバーは非表示ですが、下の方の内容が動かず見えない)、右・メインはスクロールバーが、出て問題なし。上は固定されて問題なし。下は途中で画面が切れた状態です。 このようなフレームを、意図通り表示できる設定する方法を教えてください。 宜しくお願いします。

専門家に質問してみよう