1

私は Java でかなり厄介な問題に遭遇しました。Java で一連のシミュレーションを実行するプログラムがあります。大量のデータが生成され、すべて「グラフ」オブジェクトに表示されます。GroupLayout を使用してこれらの「グラフ」オブジェクトの長いリストを表示する「Graphs」というコンポーネントを作成し、Jscrollpane 内に配置しました。

私が抱えている問題は、「グラフ」の後半が途切れていることです。コンポーネントが到達できる最大サイズは 32,767 で、たまたま 2^15 − 1 (符号付き 16 ビット数の最大サイズ) と同じです。コンポーネントのサイズは、最初に考えた 32 ビット整数ではなく、16 ビットの符号付き数値として格納されているようです。

私が持っている質問はこうです。

java がコンポーネントのサイズを格納する方法を変更して、このサイズよりも大きなコンポーネントを作成する方法はありますか?

そうでない場合、この問題に取り組む最善の方法は何ですか? このすべての情報を 1 つのパネルに表示したいと思います。「Graphs」コンポーネントを互いに「スタック」しても、親コンポーネントは最大サイズを超えてしまいます。

前もって感謝します。

クリス。

4

2 に答える 2

2

関連する質問を参照してください。 Java が unsigned int をサポートしていないのはなぜですか? .

JListまたはでグラフを表示することにより、この制限を回避できますJTableJList/は、JTable現在表示されているセルのみをレンダリングします。理想的には、グラフの値をそれぞれListModelまたはTableModelに保存し、対応するカスタムListCellRendererまたはを実装する必要がありTableCellRendererます。

最初に概念実証だけが必要な場合は、Graph Componentを直接DefaultListModelまたはに押し込み、メソッドがGraphを返すDefaultTableModelレンダラーを使用できます。get*CellRendererComponent(...)

于 2012-04-03T22:09:42.000 に答える
1

このアプローチを達成するのは少し難しいかもしれませんが、現在のアプローチよりもうまくいくでしょう. スクロールペインではなく、グラフの横にスクロールバーを追加してみてください。スクロールバーにリスナーを追加して、スクロールバーの位置に応じてグラフのコンテンツを動的に更新します。

于 2012-04-03T22:01:56.830 に答える