1
我有以下的情況來設置圖標樹節點:如何使用模式
對於ECH樹節點我有一個不同類型的圖像圖標。
我實際設置這些圖標的方式是覆蓋getTreeCellRendererComponent
,驗證用戶對象(標題),然後繪製圖標。
否則,將圖標設置爲對象圖標(對於o3),因爲它沒有穩定的名稱。
private final String OBJECTS, OBJECT, MATERIAL, DIMENSIONS, L, W, H,
LEFT, RIGHT, FRONT, BACK, TOP, BOTTOM; //=...
@Override
public Component getTreeCellRendererComponent(JTree tree, Object value,
boolean sel, boolean expanded, boolean leaf, int row, boolean hasFocus) {
super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus);
node = (DefaultMutableTreeNode) value;
String str = node.getUserObject().toString().toLowerCase();
if (str.contains("objects")) {
setIcon(new ImageIcon(OBJECTS));
}
else if (str.contains("components")) {
setIcon(new ImageIcon(OBJECTS));
}
else if (str.contains("dimensions")) {
setIcon(new ImageIcon(DIMENSIONS));
}
else if (str.contains("materials")) {
setIcon(new ImageIcon(MATERIAL));
}
else if (str.contains("length")) {
setIcon(new ImageIcon(L));
}
else if (str.contains("width")) {
setIcon(new ImageIcon(W));
}
else if (str.contains("height")) {
setIcon(new ImageIcon(H));
}
else if (node.getParent().toString().toLowerCase().contains("components") ||
node.getParent().toString().toLowerCase().contains("objects")) {
setIcon(new ImageIcon(OBJECT));
}
return this;
}
我被困在繪畫材料的孩子。 我知道順序(上,下,左,右,前,下),但我需要一種方法來識別節點。 我正在想要得到他們的父母,並以某種方式通過他們的編號在childer列表中標識他們。在這裏需要幫助。
不太明白你的問題,但你爲什麼使用字符串rep作爲userObject?使用WhateverRealObject可能(應該)爲您提供確定圖標所需的所有信息。順便說一句:不要在每次調用時創建一個新的圖標,而應在構造函數中創建一次並根據需要使用它們 – kleopatra 2012-04-18 12:26:19