netbeans を使用すると、Jtable を使用してデータベースの内容を表示できましたが、問題は、ファイルを実行すると Jtable が取得されましたが、個々のレコードのすべての内容が完全に表示されないことです。一部の列にはいくつかの単語ではなく段落エントリがあるため
1 に答える
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もチェックしてみてください。これは、複数行エディターの優れたアイデアを示しています。