jueves, 15 marzo 2007

JTable Alternate Row Background

« Blojsom setup finished | Main | Remove JTable's Enter Key behavior »

Java tables are great but complex. The good thing about them is that you can do with them whatever you want. Even more, the view is completely separated from the model so you can even play more.

JTables in brief (bad thing) are just a bunch of components put together. So anything you can de to a Component you can do in a JTable.

To make a JTable render each row in a different color, you just have to extend the JTable's prepareRender method.

JTable table = new JTable(){
    public Component prepareRenderer(TableCellRenderer renderer, int row, int column){
        Component returnComp = super.prepareRenderer(renderer, row, column);
        Color alternateColor = new Color(252,242,206);
        Color whiteColor = Color.WHITE;
        if (!returnComp.getBackground().equals(getSelectionBackground())){
            Color bg = (row % 2 == 0 ? alternateColor : whiteColor);
            returnComp .setBackground(bg);
            bg = null;
        }
        return returnComp;
};

JTableAlteranteRowColor

The above code simply gets the component that was going to be rendered and changes its background so that it fits the user needs. Here we've just set the background using two alternate colors, but there are many more things you can do, just use your imagination. Try using getModel(row, column) to get the values of what the cell contains and make the component behave depending on the values it contains.

Technorati Tags:

Posted by admin at 10:24 AM in Java

 

[Trackback URL for this entry]

Comment: Giselle at lun, 9 abr 4:48 PM

Excelent method!!!

Comment: Christian Ullenboom at lun, 7 may 12:55 PM

Two other options are:

* JXTable (http://swinglabs.org/)

* Renderpack Pipelines (https://srenderpack.dev.java.net/)

One can add a JXTable from SwingX a Highlighter which is describes here: http://www.javalobby.org/java/forums/t18819.html.

Comment: Kjk at vie, 1 jun 8:46 AM

Thanks !

Comment: Kjk at vie, 1 jun 8:46 AM

Thanks !

Comment: ekarkou at vie, 26 sep 11:10 AM

Brilliant!! thanks

Your comment:

(not displayed)
 

SCode

Please enter the code as seen in the image above to post your comment.

 
 

Live Comment Preview:

 
Google
 
« March »
SunMonTueWedThuFriSat
    123
45678910
11121314151617
18192021222324
25262728293031