我很难设置工具提示到我的一个JPanel添加到JTree中的节点。这个问题可能与JTree node's changable tooltip类似,但不完全相同。
我也在使用填充了一些(自定义)节点的JTree。每个节点都包含一个复选框,一个颜色框(JPanel)和节点路径。我正在实现TreeCellRenderer。我没有在节目中发布以下代码,因为我认为没有必要。
以下是我的代码的一部分:
public class CheckTreeCellRenderer extends JPanel implements TreeCellRenderer {
private static final long serialVersionUID = 4025435851260573240L;
CheckTreeSelectionModel selectionModel;
private TreeCellRenderer delegate;
TristateCheckBox checkBox = new TristateCheckBox();
JPanel panel = new JPanel();
public CheckTreeCellRenderer(TreeCellRenderer delegate, CheckTreeSelectionModel selectionModel){
this.delegate = delegate;
this.selectionModel = selectionModel;
setLayout(new BorderLayout());
setOpaque(false);
checkBox.setOpaque(false);
}
public Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus){
Component renderer = delegate.getTreeCellRendererComponent(tree, value, selected, expanded, leaf, row, hasFocus);
panel.setToolTipText("Hello");
removeAll();
add(checkBox, BorderLayout.WEST);
add(panel, BorderLayout.CENTER);
add(renderer, BorderLayout.EAST);
return this;
}
}
如何为添加到节点的JPanel设置工具提示?
答案 0 :(得分:1)
查看JTree.getToolTipText的文档:
注意:要使JTree正确显示其渲染器的工具提示,JTree必须是ToolTipManager的注册组件。这可以通过调用ToolTipManager.sharedInstance()。registerComponent(tree)来完成。这不是自动完成的!
这将解决它。