JTable cell border color

Hi All,
How do i change the JTable's specific cell border color and set the cursor into that cell.
Thanks.

Write your own renderer.
[Look at this example.|http://saloon.javaranch.com/cgi-bin/ubb/ultimatebb.cgi?ubb=get_topic&f=2&t=004710]

Similar Messages

  • JTable cell Background Color problem

    I overriden the table renderer and tried to chenge the color of only that row which has greater value in the third column. I coded the logic but it set the color of all the rows. The custom tablecellrendere code is as follows
          public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected,boolean hasFocus, int row, int column)
                cell = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
                   if(vuti[0]==0)
                        //cell.setBackground(Color.pink);
                        vuti[0]=counter;
                   else
                        if (counter>vuti[0] && !isSelected)
                          vuti[0]=counter;
                          cell.setBackground(Color.lightGray);
                      else if(counter<vuti[0])
                        cell.setBackground(Color.white);
                return cell;
          }

    In the code that sets the background, you have a if - else (if - else if) structure. What's the default setting, when none of the 3 conditions are met?
    And learn to indent your code correctly so that code blocks are readily apparent.
    [http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html]
    db

  • JTable cell background color

    Hi All,
    I want to change the background color of the same of the cells in jTabel. How can I do that.
    Like, I want to keep 3 cells in red color. Another 2 cells in in green color, And keep other cell background color to default.
    Also I want to change the background color of the cell, with different selection in other component(like jTree, jList).
    Thank you,
    Avin Patel

    The same cell renderer is used by all cells of the table. You can't just set the background color of a cell once. You have to reset it every time the cell renderer is called (depending on which row/column you are being asked to render). Here is an example:
    import java.awt.*;
    import javax.swing.*;
    import javax.swing.table.*;
    public class TableCell extends JFrame
         JTable table;
         public TableCell()
              Object[][] data = { {"1", "A"}, {"2", "B"}, {"3", "C"}, {"4", "D"}  };
              String[] columnNames = {"Number","Letter"};
              DefaultTableModel model = new DefaultTableModel(data, columnNames);
              table = new JTable( model );
              //  Set default cell renderer
              TableCellRenderer renderer = new TestRenderer();
              table.setDefaultRenderer(Object.class, renderer);
              JScrollPane scrollPane = new JScrollPane( table );
              getContentPane().add( scrollPane );
         public static void main(String[] args)
              TableCell frame = new TableCell();
              frame.setDefaultCloseOperation( EXIT_ON_CLOSE );
              frame.pack();
              frame.setVisible(true);
         class TestRenderer extends DefaultTableCellRenderer
              public Component getTableCellRendererComponent(
                   JTable table,
                   Object value,
                   boolean isSelected,
                   boolean hasFocus,
                   int row,
                   int column)
                   super.getTableCellRendererComponent(table,
                   value, isSelected, hasFocus, row, column);
                   if (column == 0)
                        setHorizontalAlignment( LEFT );
                        setBackground( Color.blue );
                   else
                        setHorizontalAlignment( RIGHT );
                        setBackground( Color.green );
                   if (row == 1)
                        setBackground( Color.red );
                   return this;
    }

  • JTable cell border

    Hi there,
    I am trying without success to highlight a chosen cell in a JTable.
    I have a JTable that sets up a setDefaultRenderer(). The cell renderer that I am using is a custom class that overrides DefaultTableCellRenderer.
    I would have assumed that overriding the method thus:
    public Component getTableCellRendererComponent(JTable table, Object value,
          boolean isSelected, boolean hasFocus, int row, int column) {
       this.setBorder (BorderFactory.createBevelBorder (EtchedBorder.RAISED));
       // Also tried...
       // setBorder( BorderFactory.createMatteBorder(0, 1, 0, 0, Color.black) );
       // setBorder(selectedBorder);
       // setBorder(BorderFactory.createLineBorder(Color.black));
       // setBorder(BorderFactory.createCompoundBorder(BorderFactory.createLineBorder(Color.black),getBorder()));
       // setBorder(BorderFactory.createLineBorder(Color.black));
       // setBorder(new EmptyBorder(1, 1, 1, 1));
       setBackground(new Color(0xE0C2FC));
    }...would put a border around every cell in the table. But no, it does not. The setBackground() colours every cell though and that puzzles me. Does the setBorder() method indicate the border of the cell editor, not of the cell? IIs there another method I have to turn on like the conflict that occurs
    when (JTable)
    setRowMargin(0);
    setShowHorizontalLines(true);stops the horizontal lines are showing.
    Thanks in advance,
    David

    Hi Camickr,
    Thanks for your responce. You are correct, the code example did not contain a:
    return this;A quick search shows that you have answered very similar questions so many times, that I did not want to burden you (I posted when I saw that you were online) with superfluous code, so I stripped down to the bare core that would demenstrate my question. My appologies, it did not occur to me that you would actually want to compile it.
    I have since foung the problem. I orginally based my TableModel and CellRenderer for my program on the Christmas Tree application:
    http://java.sun.com/products/jfc/tsc/articles/ChristmasTree/
    I relied heavily on the example at:
    http://java.sun.com/products/jfc/tsc/articles/ChristmasTree/source/CTTableCellRenderer.java
    As it turns out, the code in this example:
        // This override is only appropriate if this will never contain any
        // children AND the Graphics is not clobbered during painting.
        public void paint(Graphics g) {
            ui.update(g, this);
        }should not have been included into my implementation. The example file was using setBorders() all over the place. It never occured to me that they were being ignored.
    I am not sure if it is to do with my implementaion of the example code or if the example was faulty to begin with. I am not wasting any more time on it, I have just rem'ed out the affending block and it is all working fine.
    I thank you for your time though. Once again you have helped me to solve a problem.
    David.

  • JTable - cell selection color

    Hello.
    I have this problem. Consider a JTable. When I select a cell it appears with a light blue background and a blue border. How do I change that blue border to red, for example?
    Many thanks,
    Afonso

    You can change it for all tables using the UIManager. "Table.focusCellHighlightBorder" property. See [UIManager Defaults|http://www.camick.com/java/blog.html?name=uimanager-defaults] for more information.
    For individual tables you could probably override the prepareRenderer(...) method to manually set the Border.

  • Cell border colors

    I created a table with photos and text. In Dreamweaver the
    text is yellow and borders are gray and all looks ok.
    When I open it in Firefox the text and borders are yellow.
    In Opera the same situation.
    In Safari all is OK
    Does anyone have any ideas? I am on a Mac
    the page is
    http://www.bobweber.com/shuffleboard.html
    thanks
    bob

    Huh? Do you mean table "width"? And you change it to zero?
    Here's the relevant table tag -
    <table width="200" border="3" align="center"
    cellpadding="2" cellspacing="0"
    bordercolor="#666666" bgcolor="#000000">
    Note that you have used the IE proprietary (and thus invalid)
    HTML attribute
    "bordercolor". The reason that you do not see the gray
    borders in Firefox
    is that Firefox ignores this invalid HTML. If you want
    colored table
    borders, you will need to use CSS to specify them, not HTML.
    For example,
    you could have this -
    <table width="200" align="center" cellpadding="2"
    cellspacing="0"
    style="border:3px solid #666;background-color:#000;">
    to achieve the effect I think you want.
    Murray --- ICQ 71997575
    Adobe Community Expert
    (If you *MUST* email me, don't LAUGH when you do so!)
    ==================
    http://www.projectseven.com/go
    - DW FAQs, Tutorials & Resources
    http://www.dwfaq.com - DW FAQs,
    Tutorials & Resources
    ==================
    "Gcr114" <[email protected]> wrote in
    message
    news:glmasp$c2g$[email protected]..
    > dont remember off the top of my head..but im pretty sure
    if you click on
    > the
    > table itself..somewhere on there you have the option to
    adjust table with,
    > change it to 0 (or none if thats the option, i dont
    recall) and that
    > should
    > take care of it. same for links and things like that if
    you ever have that
    > problem
    >

  • JTable cell with colored string

    Hi,
    How can I make colored string in cell (string with different colors) ?

    Supposing you haven't used your own customized cell renderers, the following code must work..
    ((DefaultTableCellRenderer)<<yourtable>>.getCellRenderer(<row>, <col>)).setForeground(Color.BLUE);
    This will paint all the cells of same type as cell(<row>, <col>) in blue.
    If you want only certain cells in your table to be painted in a perticular colour, you may have to write a customized renderer yourself, extending the javax.swing.table.DefaultTableCellRenderer class, and override its getTableCellRendererComponent(...) method as per your required functionality.

  • Change cell's color in jtable when user clicks on it

    Hi everyone,
    i've got a JTable, and would like to change the background of a cell when user selects it
    so i added a mouselistener over my jtable, the mousereleased method looks like this:
              public void mouseReleased(MouseEvent e) {
                   int row = table.rowAtPoint(e.getPoint());
                   int column = table.columnAtPoint(e.getPoint());
                            // help needed
              }as you see, i found the code to get the index of the cell selected, but i don't find any method in JTable class to get the cell component itself, and to alter its background color
    Please notice that the "setSelectionBackground()" in JTable isn't enough, since i would also like to change the color of cells which are not selected when the user select a cell
    how could i do that?
    Thanks in advance!
    edit: i tried the following but it does not work either
              public void mouseReleased(MouseEvent e) {
                   int row = table.rowAtPoint(e.getPoint());
                   int column = table.columnAtPoint(e.getPoint());
                   AbstractTableModel atm = (AbstractTableModel) table.getModel();
                   Component cell = table.getDefaultRenderer(CaseMemoire.class).
                   getTableCellRendererComponent(table, atm.getValueAt(row, column), true, true, row, column);
                   cell.setBackground(Color.MAGENTA);
                   table.updateUI();
              }

    ok i found how to do it
    i directly inserted this in the renderer code:
    if (row == table.getSelectedRow() && column == table.getSelectedColumn())
    cell.setBackground(etc);
    (curiously it does not work with "if (isSelected)")
    thanks :)

  • I failed to  color  JTable cells

    Hello,
    I'm trying to set the background color of JTable cells based on their content.
    For example if I edit a cell and put a R, I'd like to paint the background in Red.
    If I enter B, I want it becomes Blue, and so on.
    I tried to use a few examples found in various fora, but all failed.
    in addition, I do not understand why I should extend JLabel and not another Class ?
    Thanks for help.
    Here is a sample code (in which all cells should become red whatever is typed in).
    import javax.swing.table.*;
    import javax.swing.*;
    public class TableRenderer extends JLabel implements javax.swing.table.TableCellRenderer {
    public java.awt.Component getTableCellRendererComponent
        javax.swing.JTable table,
       Object value,
       boolean isSelected,
       boolean hasFocus,
       int row,
       int column
         setBackground(java.awt.Color.red);   // for the moment All cells will be red
         return this;
       mytable  = new javax.swing.JTable(5,5);
       TableColumn[] column = new TableColumn[5];
       TableColumnModel colModel = mytable.getColumnModel();
       for (int i=0; i <5 ;i++)
                    column[i] = colModel.getColumn( i );
                    column.setCellRenderer(new TableRenderer());

    Finally after many tries I found a good way to do what I wanted.
    If some people are interested, here is the code.
    import java.awt.*;
    import javax.swing.table.*;
    import javax.swing.*;
    class MyClass
    public class TableRenderer extends javax.swing.table.DefaultTableCellRenderer
    public Component getTableCellRendererComponent(JTable table,Object value,boolean isSelected,boolean hasFocus,int row,int column)
         Component xx = super.getTableCellRendererComponent(table,value,isSelected,hasFocus,row,column);
            String val = (String) table.getValueAt(row, column);
            if (gegeutil.Gegetools.isEmpty(val)) super.setBackground(Color.white);
            else if(val.equals("Tournament")) super.setBackground(Color.red);
              else if(val.equals("Class"))super.setBackground(Color.orange);
              else if(val == "")           super.setBackground(Color.white);
            else super.setBackground(Color.blue);          
                   return xx;
    public TableRenderer() {
         super();
    JTable table = new JTable(nbrow, nbcolumn);
    table.setDefaultRenderer(Object.class, new TableRenderer());
    }

  • Dynamic colored in theh JTable cell

    Hi, All
    I am using a JTable to display a Jlable in the JTable cells.
    The lable is divided to, say 10 , sub rectangles. I would liketo fill each rectangles with different bg colors depending on the data I received. I tried to use html in the JLable to control the color, however, it is very expensive cuase it involves a lot of string process and also it is difficult to control the dimension of those rectangles. Do anyone has any better idea to do this ?
    The cell is not necessary to be a JLable, by the way.
    Thanks in advance !

    I have never used JPanel as my table cell component, but u might want to implement performance improvements similiar to ones done in DefaultTableCellRenderer which extends JLabel.
    Here is the code extract from DefaultTableCellRenderer
    * The following methods are overridden as a performance measure to
    * to prune code-paths are often called in the case of renders
    * but which we know are unnecessary. Great care should be taken
    * when writing your own renderer to weigh the benefits and
    * drawbacks of overriding methods like these.
    * Overridden for performance reasons.
    * See the Implementation Note
    * for more information.
    public void validate() {}
    * Overridden for performance reasons.
    * See the Implementation Note
    * for more information.
    public void revalidate() {}
    * Overridden for performance reasons.
    * See the Implementation Note
    * for more information.
    public void repaint(long tm, int x, int y, int width, int height) {}
    * Overridden for performance reasons.
    * See the Implementation Note
    * for more information.
    public void repaint(Rectangle r) { }

  • Code to change JTable cell color not working

    My code below is supposed to change the color
    of a single JTable cell however its not working.
    Could anyone please tell me why?
    Here's the code:
    import java.awt.*;
    import javax.swing.table.*;
    import javax.swing.*;
    import java.awt.event.*;
    public class ColorTable extends JTable {
    public ColorTable() {
    AbstractTableModel tableModel = new AbstractTableModel() {
    public Class getColumnClass(int column) { return Integer.class; }
    public int getColumnCount() { return 6; }
    public int getRowCount() { return 10;}
    public Object getValueAt(int row,int col) { return new Integer(row * col); }
    setModel(tableModel);
    setDefaultRenderer(Integer.class,new ColorRenderer(Color.cyan));
    this.setRowSelectionAllowed(false);
    this.setCellSelectionEnabled(true);
    addMouseListener(new MouseAdapter() {
    private ColorRenderer renderer;
    private JColorChooser chooser = new JColorChooser();
    public void mousePressed(MouseEvent e) {
    if(e.getModifiers() == MouseEvent.BUTTON3_MASK) {
    System.out.print("rowAtPoint(e.getPoint())=" +rowAtPoint(e.getPoint()));
    System.out.print( "columnAtPoint(e.getPoint()))=" + columnAtPoint(e.getPoint()));
    renderer = (ColorRenderer)getCellRenderer(rowAtPoint(e.getPoint()), columnAtPoint(e.getPoint()));
    // chooser.setColor(renderer.getColor());
    renderer.setColor(chooser.showDialog((Component)e.getSource(),"Choose Cell Color",chooser.getColor()));
    class ColorRenderer extends DefaultTableCellRenderer {
    private Color cellColor;
    public ColorRenderer(Color color) { cellColor = color; }
    public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
    System.out.print("row= " + row + "\n");
    System.out.print("column= " + column + "\n");
    System.out.print("OBJECT VALUE=" + value.toString());
    //Component comp = super.getTableCellRendererComponent(table,value,isSelected,hasFocus,row,column);
    super.getTableCellRendererComponent(table,value,isSelected,hasFocus,row,column);
    if (isSelected) {
    setOpaque(true);
    setBackground(cellColor);
    else {
    setBackground(Color.white);
    setForeground(Color.black);
    return this;
    public void setColor(Color color)
    cellColor = color;
    ColorTable.this.repaint();
    public Color getColor() { return cellColor; }
    public static void main(String[] args) {
    JFrame frame = new JFrame();
    JPanel panel = new JPanel();
    ColorTable table = new ColorTable();
    panel.add(table);
    frame.getContentPane().add(panel);
    frame.setSize(500,250);
    frame.setVisible(true);

    My code below is supposed to change the color
    of a single JTable cell however its not working.
    Could anyone please tell me why?
    Here's the code:
    import java.awt.*;
    import javax.swing.table.*;
    import javax.swing.*;
    import java.awt.event.*;
    public class ColorTable extends JTable {
    public ColorTable() {
    AbstractTableModel tableModel = new AbstractTableModel() {
    public Class getColumnClass(int column) { return Integer.class; }
    public int getColumnCount() { return 6; }
    public int getRowCount() { return 10;}
    public Object getValueAt(int row,int col) { return new Integer(row * col); }
    setModel(tableModel);
    setDefaultRenderer(Integer.class,new ColorRenderer(Color.cyan));
    this.setRowSelectionAllowed(false);
    this.setCellSelectionEnabled(true);
    addMouseListener(new MouseAdapter() {
    private ColorRenderer renderer;
    private JColorChooser chooser = new JColorChooser();
    public void mousePressed(MouseEvent e) {
    if(e.getModifiers() == MouseEvent.BUTTON3_MASK) {
    System.out.print("rowAtPoint(e.getPoint())=" +rowAtPoint(e.getPoint()));
    System.out.print( "columnAtPoint(e.getPoint()))=" + columnAtPoint(e.getPoint()));
    renderer = (ColorRenderer)getCellRenderer(rowAtPoint(e.getPoint()), columnAtPoint(e.getPoint()));
    // chooser.setColor(renderer.getColor());
    renderer.setColor(chooser.showDialog((Component)e.getSource(),"Choose Cell Color",chooser.getColor()));
    class ColorRenderer extends DefaultTableCellRenderer {
    private Color cellColor;
    public ColorRenderer(Color color) { cellColor = color; }
    public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
    System.out.print("row= " + row + "\n");
    System.out.print("column= " + column + "\n");
    System.out.print("OBJECT VALUE=" + value.toString());
    //Component comp = super.getTableCellRendererComponent(table,value,isSelected,hasFocus,row,column);
    super.getTableCellRendererComponent(table,value,isSelected,hasFocus,row,column);
    if (isSelected) {
    setOpaque(true);
    setBackground(cellColor);
    else {
    setBackground(Color.white);
    setForeground(Color.black);
    return this;
    public void setColor(Color color)
    cellColor = color;
    ColorTable.this.repaint();
    public Color getColor() { return cellColor; }
    public static void main(String[] args) {
    JFrame frame = new JFrame();
    JPanel panel = new JPanel();
    ColorTable table = new ColorTable();
    panel.add(table);
    frame.getContentPane().add(panel);
    frame.setSize(500,250);
    frame.setVisible(true);

  • How to change a selected cell background color in JTable?

    Hi all,
    I am trying to change the background color of a selected cell by clicking on that particular cell. DefaultTableCellRenderer class provides setBackground(Color c) to change the background color of unselected cells. Is there a way to change a selected cell background color?
    Thank you,
    Arthur

    Write your own renderer (eg. extending DefaultTableRenderer) and put in getTableCellRendererComponent method something like this:
    if( isSelected && hasFocus )
        setBackground( Color.RED );
        setForeground( Color.GREEN );
    }

  • Problem when setting JTable cell color.

    hello,
    when I setting color for particular table cell, it sets.
    but, when I click another row (another cell) , the color of the previous cell disabled and it visible only when I click that cells row.
    how can I permanatly set the color for the rows depends on input data.
    for example,
    if a device is connected, I want to give the cell color GREEN.
    if device is not connected , i want to give the color as RED.
    thank you.

    but, when I click another row (another cell) , the color of the previous cell disabled and it visible only when I click that cells row.It appears you applied color to cell editor.
    tableObj.getComponentAt(x,y).setForeground(Color.red);
    tableObj.getComponentAt(x,y).setBackground(Color.red); or could be solved properl if you post the code

  • Problem in JTable cell renderer

    Hi
    One problem in JTable cell. Actually I am using two tables while I am writing renderer for word raping in first table .. but it is affected in last column only remain is not being effected�. Please chaek it out what is exact I am missing�
    Thanks
    package com.apsiva.tryrowmerge;
    import java.awt.*;
    import java.awt.event.*;
    import java.util.ArrayList;
    import java.util.EventObject;
    import java.util.Hashtable;
    import java.net.*;
    import javax.swing.*;
    import javax.swing.border.Border;
    import javax.swing.border.EmptyBorder;
    import javax.swing.event.*;
    import javax.swing.table.TableCellEditor;
    import javax.swing.table.TableCellRenderer;
    import javax.swing.table.TableColumn;
    class Item_Details extends JFrame {
        ApsJTable itemTable = null;
         ApsJTable imageTable = null;     
         ArrayList data = new ArrayList();
         String[] columns = new String[2];
         ArrayList data1 = new ArrayList();
         String[] columns1 = new String[2];
         ItemTableModel itemTableModel = null;
         ItemTableModel itemTableModel1 = null;
         public Item_Details()
              super("Item Details");          
             this.setSize(600,100);
             this.setBackground(Color.WHITE);
              this.setVisible(true);
             init();          
         private void init(){
              ////////////// Get data for first Table Model  ////////////////////////////
              data = getRowData();
              columns = getColData();
              System.out.println(columns[0]);
             itemTableModel = new ItemTableModel(data,columns);
             /////////////Get Data for Second Table Model //////////////////////////////
              try{
                        data1 = getRowData1();
                 }catch(Exception e){}
              columns1 = getColumns1();
             itemTableModel1 = new ItemTableModel(data1,columns1);
             ///////////// Set Data In Both Table Model //////////////////////////////////
              itemTable = new ApsJTable(itemTableModel);
              imageTable = new ApsJTable(itemTableModel1);
              this.itemTable.setShowGrid(false);
              this.imageTable.setShowGrid(false);
              this.itemTable.setColumnSelectionAllowed(false);
              this.imageTable.setColumnSelectionAllowed(false);
              System.out.println(itemTable.getColumnCount());
              this.imageTable.setRowHeight(getImageHeight()+3);
              JScrollPane tableScrollPane = new JScrollPane(this.imageTable,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
              tableScrollPane.setRowHeaderView(this.itemTable);
              //itemTable.getColumnModel().getColumn(0).setMaxWidth(200);
              itemTable.getColumnModel().getColumn(0).setPreferredWidth(200);
              itemTable.getColumnModel().getColumn(1).setPreferredWidth(600);
              tableScrollPane.getRowHeader().setPreferredSize(new Dimension(800, 0));
              itemTable.getTableHeader().setResizingAllowed(false);
              itemTable.getTableHeader().setReorderingAllowed(false);
              itemTable.setColumnSelectionAllowed(false);
              //itemTable.setRowHeight(25);
              itemTable.setCellSelectionEnabled(false);
              itemTable.setFocusable(false);
              imageTable.getTableHeader().setReorderingAllowed(false);
              imageTable.setFocusable(false);
              imageTable.setCellSelectionEnabled(false);
              //tableScrollPane.setOpaque(false);
              itemTable.setAutoCreateColumnsFromModel(false);
              int columnCount = itemTable.getColumnCount();
              for(int k=0;k<columnCount;k++)
                   TableCellRenderer renderer = null;
                   TableCellEditor editor = null;
                   renderer = new TextAreaCellRenderer();     // NEW
              //     editor = new TextAreaCellEditor();     
              //     TableColumn column = new TableColumn(k,itemTable.getColumnModel().getColumn(k).getWidth(),renderer, editor);
                   System.out.println(k);
                   itemTable.getColumnModel().getColumn(k).setCellRenderer(renderer);          
                   //itemTable.getColumnModel().getColumn(k).setCellEditor(editor);
                   /*itemTable.getColumnModel().getColumn(1).setCellRenderer(new TextAreaCellRenderer());
                   itemTable.getColumnModel().getColumn(1).setCellEditor(new TextAreaCellEditor());*/
    //               itemTable.setShowGrid(false);
                   //itemTable.addColumn(column);
                   //itemTable.getColumnModel().getColumn(k).setCellRenderer(new MultiLineCellRenderer());
                   //itemTable.getColumnModel().getColumn(k).setCellEditor(new TextAreaCellEditor());
    ////////////---------------------- Here background color is being set--------------//////////////////
              this.imageTable.getParent().setBackground(Color.WHITE);
              this.itemTable.getParent().setBackground(Color.WHITE);
              tableScrollPane.setCorner(ScrollPaneConstants.UPPER_LEFT_CORNER,this.itemTable.getTableHeader());
              getContentPane().add(tableScrollPane,BorderLayout.CENTER);
              getContentPane().setVisible(true);
         public static void main(String[] str){
              com.incors.plaf.alloy.AlloyLookAndFeel.setProperty("alloy.licenseCode", "2005/05/28#[email protected]#1v2pej6#1986ew");
              try {
                javax.swing.LookAndFeel alloyLnF = new com.incors.plaf.alloy.AlloyLookAndFeel();
                javax.swing.UIManager.setLookAndFeel(alloyLnF);
              } catch (javax.swing.UnsupportedLookAndFeelException ex) {
              ex.printStackTrace();
              Item_Details ID = new Item_Details();
              ID.setVisible(true);
    public ArrayList getRowData()
         ArrayList rowData=new ArrayList();
         Hashtable item = new Hashtable();
         item.put(new Long(0),new String("Item No:aaaaaaa aaaaaaaa aaaaaaaaa aaaaaa"));
         item.put(new Long(1),new String("RED-1050"));
         rowData.add(0,item);
         item = new Hashtable();
         item.put(new Long(0),new String("Description:rt r trtrt rttrytrr tytry trytry tr tr rty thyjyhjhnhnhgg hhjhgjh"));
         item.put(new Long(1),new String("SYSTEM 18 mbh COOLING 13 mbh HEATING 230/208 v POWER AIRE "));
         rowData.add(1,item);
         item = new Hashtable();
         item.put(new Long(0),new String("Stage:"));
         item.put(new Long(1),new String("Draft"));
         rowData.add(2,item);
         item = new Hashtable();
         item.put(new Long(0),new String("Price: "));
         item.put(new Long(1),new String("999.00"));
         rowData.add(3,item);
         item = new Hashtable();
         item.put(new Long(0),new String("Features:"));
         item.put(new Long(1),new String("SYSTEM COOLING & HEATING 12 mbh 230/208 v POWER AIRE SYSTEM1234 COOLING & HEATING 12 mbh 230/208 v POWER AIRE "));
         rowData.add(4,item);
         item = new Hashtable();
         item.put(new Long(0),new String("Features:"));
         item.put(new Long(1),new String("SYSTEM COOLING & HEATING 12 mbh 230/208 v POWER AIRE SYSTEM1234 COOLING & HEATING 12 mbh 230/208 v POWER AIRE "));
         rowData.add(5,item);
         item = new Hashtable();
         item.put(new Long(0),new String("Features:"));
         item.put(new Long(1),new String("SYSTEM COOLING & HEATING 12 mbh 230/208 v POWER AIRE SYSTEM1234 COOLING & HEATING 12 mbh 230/208 v POWER AIRE "));
         rowData.add(6,item);
         /*item.put(new Long(0),new String("Family Sequence"));
         item.put(new Long(1),new String("8.00"));
         rowData.add(5,item);
         item.put(new Long(0),new String("Family Sequence"));
         item.put(new Long(1),new String("8.00"));
         rowData.add(6,item);
         item.put(new Long(0),new String("Family Sequence"));
         item.put(new Long(1),new String("8.00"));
         rowData.add(7,item);
         return rowData;
    public String[] getColData()
         String[] colData = new String[]{"Attribute","Value"};
         return colData;
    public ArrayList getRowData1()throws MalformedURLException{
         ArrayList rowData = new ArrayList();
         Hashtable item = new Hashtable();
         String str = new String("http://biis:8080/assets/PRIMPRIM/Adj_BeacM_Small.jpg");
         URL url = new URL(str);
         ImageIcon ic = new ImageIcon(url);
         ImageIcon scaledImage = new ImageIcon(ic.getImage().getScaledInstance(getImageHeight(), -1,Image.SCALE_SMOOTH));
         item.put(new Long(0), scaledImage);
         rowData.add(0,item);
         String str1 = new String("http://biis:8080/assets/PRIMPRIM/Adj_BeacM_Small.jpg");
         URL url1 = new URL(str1);
         ImageIcon ic1 = new ImageIcon(url1);
         ImageIcon scaledImage1 = new ImageIcon(ic1.getImage().getScaledInstance(120, -1,Image.SCALE_DEFAULT));
         item.put(new Long(0),scaledImage1);
         rowData.add(1,item);
         return rowData;
    public String[] getColumns1(){
         String[] colData = new String[]{"Image"}; 
         return colData;
    public int getImageHeight(){
         ImageIcon ic = new ImageIcon("c:\\image\\ImageNotFound.gif");
         return ic.getIconHeight();
    class TextAreaCellRenderer extends JTextArea implements TableCellRenderer
         public TextAreaCellRenderer() {
              setEditable(false);
              setLineWrap(true);
              setWrapStyleWord(true);
         public Component getTableCellRendererComponent(JTable table,
              Object value, boolean isSelected, boolean hasFocus,
              int nRow, int nCol)
              if (value instanceof String)
                   setText((String)value);
              // Adjust row's height
              int width = table.getColumnModel().getColumn(nCol).getWidth();
              setSize(width, 1000);
              int rowHeight = getPreferredSize().height;
              if (table.getRowHeight(nRow) != rowHeight)
                   table.setRowHeight(nRow, rowHeight);
              this.setBackground(Color.WHITE);
              return this;

    I think Problem is between these code only
    for(int k=0;k<columnCount;k++)
                   TableCellRenderer renderer = null;
                   TableCellEditor editor = null;
                   renderer = new TextAreaCellRenderer();
                                                                itemTable.getColumnModel().getColumn(k).setCellRenderer(renderer);or in this renderer
    class TextAreaCellRenderer extends JTextArea implements TableCellRenderer
         public TextAreaCellRenderer() {
              setEditable(false);
              setLineWrap(true);
              setWrapStyleWord(true);
         public Component getTableCellRendererComponent(JTable table,
              Object value, boolean isSelected, boolean hasFocus,
              int nRow, int nCol)
              if (value instanceof String)
                   setText((String)value);
              // Adjust row's height
              int width = table.getColumnModel().getColumn(nCol).getWidth();
              setSize(width, 1000);
              int rowHeight = getPreferredSize().height;
              if (table.getRowHeight(nRow) != rowHeight)
                   table.setRowHeight(nRow, rowHeight);
              this.setBackground(Color.WHITE);
              return this;
    }

  • Selected Table Cell Border in 1.4.2

    Hi All!!
    I am facing a problem with JDK 1.4.2_01 & Windows L&F. I am unable to see the yellow border around the selected cell in JTable. Was working fine with 1.4.1_03.
    A bug with id: 4674205 was reported with 1.4.0 stating :
    " In the Windows Look and Feel, the selected cell in a JTree or JTable is framed with a yellow rectangle. To accurately match the real Windows UI, it should be a black and white dotted rectangle instead. (This was part of bug 4268204,which was marked fixed, but this part hasn't been fixed.) This behavior was fixed for JList, but not JTree or JTable. "
    Now it has been fixed and closed.
    May be they might have removed setting of yellow border for the selected cell to match with native windows UI.
    But selected cell border is very much necessary for my project. Can any one please suggest me a workaround.
    With Regards,
    LRK

    Hi Sai!
    Thanks for your reply. It will not be feasible in my application as it already has huge number of tables with some of them already having complex renderers and editors.
    I was looking at something which i can set globally so that it will reflect to all of the tables in the application in a particular L&F.
    I tried setting
    UIManager.getDefaults().put("Table.focusCellHighlightBorder",Color.yellow);
    and
    UIManager.put("Table.focusCellHighlightBorder",Color.yellow);
    But no luck.
    Any other inputs are most welcome.
    With Regards,
    LRK

Maybe you are looking for