0
Я пытаюсь сделать приложение для загрузки пользовательских данных из xml для создания древовидной модели, тогда у пользователя есть возможность выбрать кусок данных из дерева и установить для него значок ,Динамически установлен значок для узла дерева на выбор пользователя
Я могу успешно загрузить данные из XML-файла, но проблема в том, что я не могу установить другую иконку для каждого узла дерева
Вот как я сделал
public class DefaultTreeRenderer extends DefaultTreeCellRenderer {
private static final long serialVersionUID = 1L;
private Icon userIcon;
private int getSelecteRow;
public DefaultTreeRenderer(String IconPath,int selected) throws IOException {
Image img = ImageIO.read(new File(IconPath)) ;
Image newimg = img.getScaledInstance(28, 28, java.awt.Image.SCALE_SMOOTH) ;
Icon x = new ImageIcon(newimg);
userIcon= x;
getSelecteRow = selected;
}
@Override
public Component getTreeCellRendererComponent(
JTree tree,
Object value,
boolean sel,
boolean expanded,
boolean leaf,
int row,
boolean hasFocus) {
JLabel label = (JLabel) super.getTreeCellRendererComponent(
tree, value, sel,
expanded, leaf, row,
hasFocus);
if (?!!!) {
// This's the missing part, what should i state to set per row icon ?
label.setIcon(tutorialIcon);
label.setText(label.getText()+" √");
} else{
}
return label;
}
}
тестовый код:
try {
jTree1.setCellRenderer(new DefaultTreeRenderer(iconPathTextBox.getText(),jTree1.getMinSelectionRow()));
} catch (IOException ex) {
Logger.getLogger(frame.class.getName()).log(Level.SEVERE , null , ex);
}
Попробуйте подход, показанный в [JTree: установите пользовательские открытые/закрытые значки для отдельных групп] (http://stackoverflow.com/questions/14096725/jtree-set-custom-open-closed-icons-for-individual -группы). – trashgod
Спасибо, trashgod за помощь. Мне удалось решить эту проблему, сделав карту для каждой части данных на jtree и ее значке. Если вы проверите, будет ли userObject равен ключу карты, тогда установите значение Icon, получив значение ключа (значок). – Nemotatu
Вы можете [ответить на свой вопрос] (http://meta.stackexchange.com/q/17463/163188). – trashgod