怎样在jTree中获取鼠标点击的焦点
jTree中本来不用编码就可以自动的获取鼠标点击的焦点,但是我使用了TreeCellRenderer接口来画图标。
画上图标后用鼠标点击树的节点,却不能获取焦点了。请问是怎么回事,我的代码如下:
// 图标生成类
protected class MyTreeCellRenderer extends JPanel implements
TreeCellRenderer {
JLabel label = new JLabel();
public MyTreeCellRenderer() {
this.add(label);
label.setBackground(UIManager.getColor("Tree.textBackground"));
this.setBackground(UIManager.getColor("Tree.textBackground"));
}
public Dimension getPreferredSize() {
Dimension labelDimension = label.getPreferredSize();
return new Dimension(
labelDimension.width,
labelDimension.height);
}
public Component getTreeCellRendererComponent(JTree tree, Object value,
boolean sel, boolean expanded, boolean leaf, int row,
boolean hasFocus) {
String stringValue = tree.convertValueToText(value, sel, expanded,
leaf, row, hasFocus);
label.setFont(tree.getFont());
// 设置图标为系统的文件类型图标
FileSystemView fileSystemView = FileSystemView.getFileSystemView();
label.setIcon(fileSystemView.getSystemIcon(((FileNode) value)
.getFile()));
label.setText(stringValue);
return this;
}
public void doLayout() {
Dimension labelDimension = label.getPreferredSize();
label.setLocation(0, 0);
label.setBounds(0, 0, labelDimension.width,
labelDimension.height);
}
}