JTableの列ヘッダーを表示するのは、JScrollPaneコードのどの部分ですか?JScrollPane - JTableヘッダをどのように表示しますか?
JPanelにJTableを追加するだけでは、デフォルトではヘッダーが表示されません。テーブルをJScrollPaneのコンストラクタに渡すか、テーブルを引数としてJScrollPane setViewportView
を呼び出します。実際には、列見出しが表示されるのはなぜですか? JScrollPane(updateUI
とgetUI
メソッド)の内部レンダリングの一部ですか?
最初はJScrollPaneがsetColumnHeaderView
を使ってこれを行うと考えましたが、このメソッドにnullを渡しても、テーブルにはヘッダが表示されます。
setColumnHeaderViewを呼び出すと、スクロールペインの列ヘッダーが更新されないという説明がありますか?これは、スクロールペインをインスタンス化し、setViewportViewを使用してJTableを追加した後、JPanelにスクロールペインを追加した後に呼び出されます。私は再塗りつぶしを試みたり、異なるコンポーネントで再検証しましたが、結果はありません。私は別のテーブルを作成し、そこからテーブルヘッダを抽出した後、setColumnHeaderViewに渡しました。変化なし。しかし、setColumnHeaderViewの後にsetViewportView(null)を呼び出すと、スクロールペインに2番目のテーブルのヘッダーが表示されます。 – user4205580
@ user4205580、フレームが表示された後、スクロールペインの列ヘッダーを変更できます。私は上記のようにフレームが見えるようになったときにテーブルが列見出しを設定するためです。問題がある場合は、問題を示す[SSCCE](http://sscce.org/)を投稿してください。 – camickr