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

 

 

0
Avatar
Permanently deleted user

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.

1

请先登录再写评论。