展开和折叠图标
正如您从下面的图像中看到的那样,展开和折叠图标是灰色的,就像行选择突出显示一样。这会导致您看不到展开或折叠图标(注意:不是文件夹图标),当该行突出显示时,我想为选定的行具有白色展开或折叠图标。如何做到这一点?展开和折叠图标
别的东西,也将是酷,有展开和折叠图标完全隐藏,直到JTree的获得焦点。像Windows 7的树。
谷歌表示 - 根据这个帖子:http://www.exampledepot.com/egs/javax.swing.tree/DefIcons.html - :
// Retrieve the three icons
Icon leafIcon = new ImageIcon("leaf.gif");
Icon openIcon = new ImageIcon("open.gif");
Icon closedIcon = new ImageIcon("closed.gif");
// Create tree
JTree tree = new JTree();
// Update only one tree instance
DefaultTreeCellRenderer renderer = (DefaultTreeCellRenderer)tree.getCellRenderer();
renderer.setLeafIcon(leafIcon);
renderer.setClosedIcon(closedIcon);
renderer.setOpenIcon(openIcon);
// Remove the icons
renderer.setLeafIcon(null);
renderer.setClosedIcon(null);
renderer.setOpenIcon(null);
// Change defaults so that all new tree components will have new icons
UIManager.put("Tree.leafIcon", leafIcon);
UIManager.put("Tree.openIcon", openIcon);
UIManager.put("Tree.closedIcon", closedIcon);
// Create tree with new icons
tree = new JTree();
// Update row height based on new icons;
当然,我不知道你是否能修改只在这去的图像的颜色。但你总是可以创建新的图标,对吧?
嘿,thx回复,但这三个图标(开放封闭和叶,图标)表示为蓝色我的图片中的文件夹,我想更改展开的折叠图标,灰色箭头。我成功地改变了他们,他们总是+和 - 标志。 – ex0b1t 2012-02-01 08:42:20
可以使用下面的代码更改它们,但是这会更改所有展开和折叠图标,现在我只想更改所选行的图标。 UIManager.put(“Tree.expandedIcon”,new ImageIcon(FileBrowser.class.getResource(“Resources/Expand.png”))); UIManager.put(“Tree.collapsedIcon”,new ImageIcon(FileBrowser.class.getResource(“Resources/Collapse.png”))); – ex0b1t 2012-02-01 08:42:39
第一个链接已经死亡。 – 2017-08-04 12:48:28
你可以试试这个。然而,你应该注意到为了使这个工作,我不得不在树上覆盖setUI,只允许我的TreeUI。
private class IconTreeUI extends BasicTreeUI {
private Icon collapseIcon = null;
private Icon expandIcon = null;
@Override
public Icon getCollapsedIcon() {
if (collapseIcon == null) {
collapseIcon = new ImageIcon(yourCollapseImageHere);
}
return collapseIcon;
}
@Override
public Icon getExpandedIcon() {
if (expandIcon == null) {
expandIcon = new ImageIcon(yourExpandImageHere);
}
return expandIcon;
}}
+1的一个很好的问题,但它实际上把您的评论维森特普拉塔与另一仔细看屏幕截图,我意识到究竟你是什么意思!我编辑了一些文字来强调***的重点。 ;) – 2012-02-01 08:48:01
GUI使用什么PLAF? – 2012-02-01 08:49:14
它使用Windows LAF – ex0b1t 2012-02-01 09:55:47