[英]How to set tooltip in TreeCellRenderer?
我一直堅持將工具提示設置為添加到JTree節點中的JPanel之一。 這個問題可能類似於JTree節點的可更改工具提示,但並不完全相同。
我還使用了填充了一些(自定義)節點的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設置工具提示?
看看JTree.getToolTipText的文檔:
注意:為了使JTree正確顯示其渲染器的工具提示,JTree必須是在ToolTipManager中注冊的組件。 這可以通過調用ToolTipManager.sharedInstance()。registerComponent(tree)來完成。 這不會自動完成!
這將解決它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.