I'm trying to build a debug GUI listing errors while categorizing them for a better overview. Therefore I am building a JTree
with JTables
as leaves. Since the tables need some space a JScrollPane
is required. Now displaying this works more or less, but I can't scroll inside the table.
CellRenderer
:
private static class MyTableCellRenderer implements TreeCellRenderer {
@Override
public Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected, boolean expanded,
boolean leaf, int row, boolean hasFocus) {
Object v = ((DefaultMutableTreeNode) value).getUserObject();
if (v instanceof JTable) {
JPanel panel = new JPanel();
panel.add(((JTable) v).getTableHeader());
panel.add(new JScrollPane((JTable) v));
return panel;
}
return new JLabel(v.toString());
}
}
Panel & tree:
JFrame frame = new JFrame();
JPanel panel = new JPanel();
frame.add(panel);
DefaultMutableTreeNode parentNode = new DefaultMutableTreeNode("root");
JTree tree = new JTree(parentNode);
tree.setCellRenderer(new MyTableCellRenderer());
DefaultMutableTreeNode tableNode = new DefaultMutableTreeNode(new JTable(new Object[0][], new Object[] {"col1"}));
//add some content
parentNode.add(tableNode);
Any suggestions on how to scroll inside the table?