0

netbeans を使用すると、Jtable を使用してデータベースの内容を表示できましたが、問題は、ファイルを実行すると Jtable が取得されましたが、個々のレコードのすべての内容が完全に表示されないことです。一部の列にはいくつかの単語ではなく段落エントリがあるため

4

1 に答える 1

2

jtableで使用される行数とテキストの高さを知る必要があります。そこから、行の高さを設定できます (テーブルに対してグローバルに、または個々の行に対して)。

次に、複数行のコンテンツを表示できるテーブル セル レンダラーが必要になります。

要件によっては、セルの 1 行の要約を表示し、ツールチップに完全なコンテンツ (コンテンツのサイズに応じて) を表示するか、編集不可能なテキスト コンポーネントを含むポップアップ ウィンドウを表示する方がよい場合があります。

アップデート

短いコメントで申し訳ありません。私は iPad を使用していました。

UI の状態に応じて、2 つの選択肢があります。JTables グラフィック コンテキストから FontMatrics への参照を取得できます。これは、JTable が実現されている (画面にレンダリングされている) 場合にのみ機能します。

FontMetrics fm = myTable.getFontMetrcis(myTable.getFont());
int height = fm.getHeight();

もちろん、この例では、JTable と同じフォントを使用していることを前提としています。そうでない場合は、正しいフォントを指定する必要があります。

または、UI がまだ実現されていない場合は、互換性のある画像を構築して、そこからフォント メトリックを抽出する必要があります。これは、グラフィックス構成とデバイスを処理し始めるため、もう少し複雑です...

BufferedImage img = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getDefaultConfiguration().createCompatibleImage(1, 1, Transparency.TRANSLUCENT);

Graphics2D g2d = img.createGraphics();
FontMetrics fm = g2d.getFontMetrics(font);
int height = fm.getHeight();
g2d.dispose();

フォントの高さを取得したら、テキストが複数の行に分割されている (または自分で行を分割できる) と仮定して、テキストの高さを計算できるはずです。そうでない場合 (または独自の単語/行の折り返しを提供したい場合)、これはますます複雑になります。

ヒントにgraphics2Dを使用してテキストをレンダリングする方法については、 http://docs.oracle.com/javase/tutorial/2d/text/drawmulstring.htmlで確認できます(これを使用して、必要に応じてテキストをグループに分割できます)。

また、 http://www.jroller.com/santhosh/entry/multiline_in_table_cell_editing1もチェックしてみてください。これは、複数行エディターの優れたアイデアを示しています。

于 2012-07-15T09:30:49.870 に答える