初めてなので間違っていたら教えてください!
したがって、テーブルはメッセージを受信するためのものであるため、最終的に数十万行になるツリーテーブル(aephyrのニーズに合わせて修正されたバージョン- http://code.google.com/p/aephyr/ )があります。 、それは決して終わることができませんでした。そのため、情報をディスクに保持し、ユーザーが見たいときにのみロードする必要がありました。テーブルのルートに最大 100 の子を保持し、テーブルの最初または最後にある 2 つの特別なノードをクリックして、いくつかのノードを上下にロードします。明らかに、これはユーザーフレンドリーではなく、ノード 10 にいて、たとえば 2000 にスクロールしたい場合は面倒です。
使いやすくするために、スクロールバーが必要です。スクロールバーの位置から、どのノードをロードする必要があるかがわかります。問題は、私のテーブルの JScrollPane のデフォルトのスクロールバーが、getRowCount() に対して何を返しても、ノードが 100 しかないように見えることです。別の JScrollBar を作成して、必要な場所にスクロールさせましたが、テーブルにもスクロール ペインにもバインドされていないため、ビューポートのスクロールにもマウス ホイールにも反応しません。
それよりも、私の質問は次のとおりです。元の JScrollPane のスクロールバーを私が望むように見せる方法について誰もが考えているので、テーブル、ビューポート、およびスクロールバーで発生する可能性のあるすべてのイベントに応答するために車輪を再発明する必要はありませんか??
必要に応じて、サンプル コードを作成してみることもできますが、それには時間がかかります。現在はありません =\
事前にサンクス!
[編集]
私の問題でサンプルコードを作成しました...あまり良くありませんが、私の問題が何であるかを理解するには十分だと思います... 私はEclipseでAephyrプロジェクトを持っていて、それに新しい「LazyTableTest」パッケージを作成しました。 .. パッケージのソース コードは、この zip ファイルにあります: https://docs.google.com/file/d/0B4Ti8_BMZvD2b2dtY05GWkxFVGs/edit?usp=sharingt
DemoTable を実行します。2000 エントリのファイルが作成され、それらがテーブルに表示されます (ファイル作成の初期化はやや遅いです...)。フレームには 2 つのスクロールバーが含まれています。ノブを直接動かすと、期待どおりに動作します (+いくつかのバグ)。アクションがホイールまたはビューポートから来るとき、何も起こりません-私はそのために何も設定しませんでした、そして前に言ったように、これでホイールを再発明したくありません...だから、スクロールでVerticalScrollBarを設定しようとしますバーですが、機能しなくなりました (DemoTable.java の 528 行目のコメントを外します)。
アイデア?!