how to remove the cell value marked
已回答
1.question
dev and test node show three value in table ,but i just want to show only The left one
how to modify my code?
2.code
public TreeTable createTable(){
ColumnInfo env = new ColumnInfo("Env") {
@Override
public Object valueOf(Object o) {
if (o instanceof CustomNode) {
return ((CustomNode) o).getName();
}
else return o;
}
};
ColumnInfo name = new ColumnInfo("Name") {
@Override
public Object valueOf(Object o) {
if (o instanceof CustomNode) {
return ((CustomNode) o).getName();
} else return o;
}
};
ColumnInfo value = new ColumnInfo("Value") {
@Override
public Object valueOf(Object o) {
if (o instanceof CustomNode) {
return ((CustomNode) o).getValue();
} else return o;
}
};
ColumnInfo[] columns = {env,name, value};
DefaultMutableTreeNode root = new DefaultMutableTreeNode("xxx",true);
DefaultMutableTreeNode env1 = new EnvNode("dev");
DefaultMutableTreeNode env2 = new EnvNode("test");
root.add(env1);
root.add(env2);
DefaultMutableTreeNode first = new CustomNode("base", "xxx");
DefaultMutableTreeNode second = new CustomNode("marketing", "yyy");
env1.add(first);
env2.add(second);
ListTreeTableModel model = new ListTreeTableModel(root, columns);
TreeTable treeTable = new TreeTable(model) {
@Override
public TreeTableCellRenderer createTableRenderer(TreeTableModel treeTableModel) {
TreeTableCellRenderer tableRenderer = super.createTableRenderer(treeTableModel);
UIUtil.setLineStyleAngled(getTree());
tableRenderer.setRootVisible(true);
tableRenderer.setShowsRootHandles(true);
return tableRenderer;
}
@Override
public Class<?> getColumnClass(int column) {
return (column == 0) ? TreeTableModel.class : String.class;
}
@Override
public TableCellRenderer getCellRenderer(int row, int column) {
TreePath treePath = getTree().getPathForRow(row);
if (treePath == null) return super.getCellRenderer(row, column);
Object node = treePath.getLastPathComponent();
@SuppressWarnings("unchecked")
TableCellRenderer renderer = columns[column].getRenderer(node);
return renderer == null ? super.getCellRenderer(row, column) : renderer;
}
@Override
public boolean isCellEditable(int row, int column) {
return true;
}
@Override
public TableCellEditor getCellEditor(int row, int column) {
TreePath treePath = getTree().getPathForRow(row);
if (treePath == null) return super.getCellEditor(row, column);
Object node = treePath.getLastPathComponent();
@SuppressWarnings("unchecked")
TableCellEditor editor = columns[column].getEditor(node);
return editor == null ? super.getCellEditor(row, column) : editor;
}
};
treeTable.setVisible(true);
return treeTable;
}
import javax.swing.tree.DefaultMutableTreeNode;
public class EnvNode extends DefaultMutableTreeNode {
public EnvNode(Object userObject) {
super(userObject);
}
@Override
public boolean isRoot() {
return true;
}
}
3.image

请先登录再写评论。
Hello,
You have to write a correct `ColumnInfo`s. For example, you can return an empty string `""`, if the corresponding column should not render any text.