0

Just want to know can we retrieve cell of JTable as a JComponent and can we calculate the area of each cell of jtable so that i can bound to the user to click on that particular area.

4

2 に答える 2

3

jtable のセルを JComponent として取得できますか?

要するに、いいえ。JTable を描画するために、Swing はレンダラーの概念を使用します。これは、各セルにライブ コンポーネントを用意する代わりに、同じコンポーネントを再利用して JTable の列全体または複数の列を描画することを意味します。これは、JTable が適切なパラメーターを使用してレンダラーを呼び出し、そのサイズと位置を対応するセルに設定し、ペイント メソッドを呼び出してから、テーブル全体がペイントされるまでコンポーネントをさらに移動することを意味します。これは、JTable 内の各セルに子コンポーネントがないことを意味します。詳細については、こちらをご覧ください。

ここで、マウス リスナーをバインドする場合は、JTable で直接実行できます。使用getCellRectすると、クリックが特定のセル内にあるかどうかを確認したり、columnAtPointrowAtPointを使用してクリックされたセルを確認したりできます。

于 2012-09-17T09:22:34.427 に答える
3

最初に JTable のチュートリアルを試してください。

JTable は、テーブル セルをレンダリングするための JComponent を提供するテーブル セル レンダラーを使用します。一般に (DefaultTableCellRenderer を使用して) 同じ JComponent が再利用され、TableModel セルのコンテンツに適合されるという点で、効率の最適化が存在します。

(レンダラーの他に、テーブル セル エディターがあります。)

あなたの場合、単に a をオーバーライドして aDefaultTableCellRendererを実行できますjtable.setRenderer

于 2012-09-17T09:21:16.047 に答える