Component (JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { int modelRow = table.convertRowIndexToModel(row); final boolean lineHasFocus = table.hasFocus(); if (myTreeCellRenderer != null) myTree.setCellRenderer(myTreeCellRenderer); if (isSelected){ myTree.setBackground(lineHasFocus ? RenderingUtil.getSelectionBackground(table) : UIUtil.getTreeUnfocusedSelectionBackground()); myTree.setForeground(RenderingUtil.getSelectionForeground(table)); } else { myTree.setBackground(RenderingUtil.getBackground(table)); myTree.setForeground(RenderingUtil.getForeground(table)); } myCellRendererComponent.setBackground(isSelected ? RenderingUtil.getSelectionBackground(table) : RenderingUtil.getBackground(table)); myCellRendererComponent.setForeground(isSelected ? RenderingUtil.getSelectionForeground(table) : RenderingUtil.getForeground(table)); //TableModel model = myTreeTable.getModel(); //myTree.setTreeTableTreeBorder(hasFocus && model.getColumnClass(column).equals(TreeTableModel.class) ? myDefaultBorder : null); myTree.setVisibleRow(modelRow); final Object treeObject = myTree.getPathForRow(modelRow).getLastPathComponent(); boolean leaf = myTree.getModel().isLeaf(treeObject); final boolean expanded = myTree.isExpanded(modelRow); Component component = myTree.getCellRenderer().getTreeCellRendererComponent(myTree, treeObject, isSelected, expanded, leaf, modelRow, lineHasFocus); if (component instanceof JComponent) { table.setToolTipText(((JComponent)component).getToolTipText()); } //myTree.setCellFocused(false); myCellRendererComponent.setComponent(component, expanded, leaf); return myCellRendererComponent; }