データベース スタブ (Oracle データベースになる) から返されるデータの行数が多いアプリケーションを作成していますが、何らかの理由でスクロール バーが約 500 番目の要素で停止します。スクロールバー内にすべての要素を表示する方法があるかどうか疑問に思っています。
2 に答える
Windows のスクロールバーにはかなり一般的な問題があるため、ここでは Windows を使用していると想定しています。最大値は short int の 32,768 です。したがって、ScrolledComposite の内部コンポジットの高さが 32,768 ピクセルを超える場合、コンポジットはクリップされます。
これを修正する強力な方法は見つかりませんでしたが、回避策があります。スクロールしたいコンポジットからスクロールバーを分離します。ScrollBar を作成することはできませんが、ScrollBar と正確に同じ幅の ScrolledComposite を作成し、それに ScrollListener をアタッチして、スクロール コンポジットのレイアウト位置を調整することができます。
どこかにスニペットがありますが、この診断があなたのシナリオに当てはまるかどうかさえ正確にはわかりません.
ScrollBar の最小値と最大値を設定する必要がある場合があります。それぞれ setMinimum() および setMaximum() メソッドを使用します。
ページの増分を設定することもお勧めします。これは、ユーザーがつまみボタンと矢印ボタンの間の領域をクリックするか、Page Up ボタンまたは Page Down ボタンを押したときに、選択された値が変化するスクロール行の数です。setPageIncrement() メソッドを使用します。
最後に、Oracle は、テーブルから取得できる行の最大数を課す場合があります。デフォルトは500行だと思います。