2010-03-06 9 views
4

J'essaie de rendre la ligne entière dans un JXTreeTable pour devenir gras.Rendre JXTreeTable Ligne entière Gras

final TableCellRenderer doubleOldTableCellRenderer = this.buyTreeTable.getDefaultRenderer(Double.class); 
    final TableCellRenderer integerOldTableCellRenderer = this.buyTreeTable.getDefaultRenderer(Integer.class); 
    final TableCellRenderer treeTableModelOldTableCellRenderer = this.buyTreeTable.getDefaultRenderer(TreeTableModel.class); 
    // "treeTableModelOldTableCellRenderer = null" 
    System.out.println("treeTableModelOldTableCellRenderer = " + treeTableModelOldTableCellRenderer); 
    this.buyTreeTable.setDefaultRenderer(TreeTableModel.class, new DefaultTableCellRenderer() { 

     @Override 
     public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { 
      Component c = treeTableModelOldTableCellRenderer.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); 
      c.setFont(org.yccheok.jstock.gui.Utils.getBoldFont(c.getFont())); 
      return c; 
     } 

    }); 
    this.buyTreeTable.setDefaultRenderer(Integer.class, new DefaultTableCellRenderer() { 

     @Override 
     public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { 
      Component c = integerOldTableCellRenderer.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); 
      c.setFont(org.yccheok.jstock.gui.Utils.getBoldFont(c.getFont())); 
      return c; 
     } 

    }); 
    this.buyTreeTable.setDefaultRenderer(Double.class, new DefaultTableCellRenderer() { 

     @Override 
     public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { 
      Component c = doubleOldTableCellRenderer.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); 
      c.setFont(org.yccheok.jstock.gui.Utils.getBoldFont(c.getFont())); 
      //System.out.println(c); 
      //System.out.println(c.getFont()); 
      return c; 
     } 

    }); 

Cependant, voici l'effet que j'obtiens:

alt text http://sites.google.com/site/yanchengcheok/Home/treetableproblem.png

Puis-je savoir comment je peux faire le nom du dossier gras ainsi?

Merci

+0

croix affiché: http://forums.sun.com/thread.jspa?threadID = 5430819 & tstart = 0 – camickr

+0

@Jamie Mcllroy a répondu à votre question. Vous devez implémenter votre propre 'TreeCellRenderer' (peut-être en étendant DefaultTreeCellRenderer) et le coder pour afficher du texte en gras si nécessaire. Ensuite, vous devez le définir comme le 'TreeCellRenderer' en utilisant - http://www.jarvana.com/jarvana/view/org/swinglabs/swingx/1.6.1/swingx-1.6.1-javadoc.jar!/org/jdesktop /swingx/JXTreeTable.html#setTreeCellRenderer%28javax.swing.tree.TreeCellRenderer%29 –

Répondre

3

buyTreeTable. setTreeCellRenderer (whateverYourRenderedClass et Renderer sont)

1

Comme colonne "stock" à la colonne (0) tout simplement:

buyTreeTable.getColumn(0).setCellRenderer(yourObjectrenderer);