2011-07-11 2 views
3

これは私のこのprevious postと実際に似た質問です。 JTableのいくつかのセルを、テーブルヘッダーセルのようにカスタマイズする必要があります。 私はニンバスの外観を使用して感じて、私はJTableののエディタの色を取得しようとしています:テーブルのセルヘッダーカラーでjtable cellrendererをカスタマイズする

public class HeaderCellRenderer extends JLabel implements TableCellRenderer{ 


    @Override 
    public Component getTableCellRendererComponent(JTable table, Object value, 
      boolean isSelected, boolean hasFocus, int row, int column) { 

     System.out.println("OK"); 
     this.setOpaque(true); 
     setBackground(UIManager.getColor("TableHeader.background")); 
     return this; 
    } 

} 

私は名前がGETCOLOR方法(「TableHeader.background」)に供給されるように取得するには、このpostに従ってください。 これまで行ってきたことにもかかわらず、返される色はテーブルの見出しセルと同じではありません。

ご存知ですか?

EDIT:

私の代わりに色のそれは勾配でなければなりませんが、私は使用する権利鍵を見つけることができないことに気づきました。私はthis listを見た。

答えて

3

典型的なLook &フィールのデフォルトテーブルヘッダーの外観は、sun.swing.table.DefaultTableCellHeaderRendererのインスタンスによって提供されます。次のようにコピーを入手することができます

class HeaderRenderer implements TableCellRenderer { 

    TableCellRenderer renderer; 

    public HeaderRenderer(JTable table) { 
     renderer = table.getTableHeader().getDefaultRenderer(); 
    } 

    @Override 
    public Component getTableCellRendererComponent(
     JTable table, Object value, boolean isSelected, 
     boolean hasFocus, int row, int col) { 
     return renderer.getTableCellRendererComponent(
      table, value, isSelected, hasFocus, row, col); 
    } 
} 

、あなたが与えられた列のtype tokenための通常の方法でそれをインストールすることができます。

table.setDefaultRenderer(SomeObject.class, new HeaderRenderer(table)); 
+0

おかげで多くのことを。私はそれを試みます。 – Heisenbug

+0

Darryl Burkeの[* Default Table Header Cell Renderer *](http://tips4java.wordpress.com/2009/02/27/default-table-header-cell-renderer/)も参照してください。 – trashgod

関連する問題