public void valueChanged(TreeSelectionEvent e) {
TreePath treePath = e.getPath();
if (treePath == null) {
return;
}
DefaultMutableTreeNode node = (DefaultMutableTreeNode) treePath
.getLastPathComponent();
int offset = 0;
int len = 0;
if (node.getUserObject() instanceof PropertyNode) {
PropertyNode leaf = (PropertyNode) node.getUserObject();
offset = leaf.offset;
len = leaf.len;
}
else if (node.getUserObject() instanceof GooseNode) {
GooseNode leaf = (GooseNode) node.getUserObject();
offset = leaf.offset;
len = leaf.len;
}
else if (node.getUserObject() instanceof DatasetNode) {
DatasetNode leaf = (DatasetNode) node.getUserObject();
offset = leaf.offset;
len = leaf.len;
}
int end = offset + len;
offset = offset * 2 + offset;
end = end * 2 + end;
offset += offset / 48;
end += end / 48 - 1;
// hexPane.requestFocus();
doc=hexPane.getStyledDocument();
doc.setCharacterAttributes(0, doc.getLength(), notSelected, true);
doc.setCharacterAttributes(offset, end - offset, selected, true);
hexPane.select(offset, end);//加上此句,当选中文本不可见时滚动条自动滚动
}