私は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);
}