2
A
回答
2
好吧,你可以嘗試像下面。
JTree tree = new JTree();
DefaultMutableTreeNode root = new DefaultMutableTreeNode("Animals");
DefaultTreeModel model = new DefaultTreeModel(root);
tree.setModel(model);
root.add(new DefaultMutableTreeNode(new Animal("Dog","ACS")));
root.add(new DefaultMutableTreeNode(new Animal("Cat","BCS")));
root.add(new DefaultMutableTreeNode(new Animal("Lion","FCS")));
root.add(new DefaultMutableTreeNode(new Animal("Tiger","<html>Hello World!<br>blahblahblah</html>")));
DefaultTreeSelectionModel sModel = new DefaultTreeSelectionModel();
sModel.setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
tree.setSelectionModel(sModel);
tree.addTreeSelectionListener(new TreeSelectionListener() {
@Override
public void valueChanged(TreeSelectionEvent selection) {
DefaultMutableTreeNode selectedNode = (DefaultMutableTreeNode)selection.getPath().getLastPathComponent();
if(selectedNode.isLeaf()){
Animal animal = (Animal)selectedNode.getUserObject();
}
}
});
tree.setCellRenderer(new DefaultTreeCellRenderer(){
@Override
public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel, boolean expanded,
boolean leaf, int row, boolean hasFocus) {
if(value != null){
DefaultMutableTreeNode node = (DefaultMutableTreeNode)value;
if(node.isLeaf()){
Animal animal = (Animal)((DefaultMutableTreeNode)value).getUserObject();
this.setText(animal.name);
}else {
return super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus);
}
}
return this;
}
});
這給了我下面的輸出。
希望它可以幫助你。
對於自動換行,你可以使用HTML內容
請參考Andrew的答案在這link
相關問題
- 1. 文本標籤Word包裝
- 2. word包裝jquery listview項目
- 3. 用計數類包裝Word的實例
- 4. ASP.NET GridView - 防止列中的Word包裝
- 5. 在UILabel Word包裝屬性後添加'...'
- 6. Word包裝UITabBarItem的標籤(目標C)
- 7. 德爾福DBgrid包裝Word內容
- 8. 文本不會包裝在Div中。嘗試過使用word-wrap:break-word;
- 9. word 2007插件安裝無法與word 2010配合使用
- 10. 將VB6引用設置爲Microsoft Word 97(Word 2007安裝)
- 11. 無Word安裝的通用Microsoft Word文檔解析器
- 12. 如何設置ListBox以顯示從下到上與Word包裝?
- 13. 如何在JasperReport中包裝Word輸出的報告?
- 14. Android WebView Word包裝文本內容縮放文本內容
- 15. 自動Word-包裝文本到打印頁面?
- 16. Word不包裝在IE 6,7和8的框中
- 17. 互操作 - 阻止表包裝兩頁Word中
- 18. SaveAsPDF Word插件到C#MSI安裝程序包
- 19. JAXB包裝包裝
- 20. 用「雙面包裝」包裝面板
- 21. 創建新jTree後jTree刷新組件
- 22. 禁用包裝
- 23. 包裝用DIV
- 24. 包裝應用
- 25. 使用包裝
- 26. 試用包裝
- 27. 使用包含可編輯JTextArea的JPanel渲染JTree葉
- 28. 在谷歌雲-ml引擎中使用的包裝keras tokenizer/word索引
- 29. CSS- Word不包裝在這種情況下 - 換行不起作用
- 30. 不使用JTree沒有LayoutManager
你能張貼到你嘗試過什麼碼? – Beniton
我不知道我現在可以嘗試什麼。我曾想過用JLabel替換單元格渲染器,但由於默認的單元渲染器已經是一個,所以它會執行任何操作。 – utybo
這比我想象的更詭計+1,我還想看到一個很好的解決方案。將(包裝!)行的高度設置爲正確並且仍然爲每個渲染器組件分配適當的寬度是非常煩瑣的。 – Marco13