Hallo,
wie der Titel schon sagt versuche ich vergeblich Elemente im JTree zu markieren, wenn ein Button gedrückt wird, aber es wird einfach gar nichts markiert.
Hier mal mein Code:
wie der Titel schon sagt versuche ich vergeblich Elemente im JTree zu markieren, wenn ein Button gedrückt wird, aber es wird einfach gar nichts markiert.
Hier mal mein Code:
Java:
public class GUIJTree {
static JButton b;
public static void main(String [] args){
final JFrame f=new JFrame();
f.setSize(200,400);
f.setLocation(300,200);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setTitle("JTree Test");
f.setLayout(new BorderLayout());
final JTreeVerwalter tv=new JTreeVerwalter();
final JTree jt=tv.getJTree();
f.add(jt,BorderLayout.CENTER);
b=new JButton("mach das");
f.add(new JPanel(new FlowLayout()).add(b),BorderLayout.SOUTH);
b.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
if(e.getSource()==b){
jt.setSelectionPath(tv.getPath());
f.repaint();
f.setVisible(true);
}
}
});
jt.setSelectionPath(tv.getPath());
f.setVisible(true);
}
}
Java:
public class JTreeVerwalter {
private JTree t=null;
public JTreeVerwalter(){
DefaultMutableTreeNode tn=new DefaultMutableTreeNode("Java");
DefaultMutableTreeNode tnh1=new DefaultMutableTreeNode("Haupt1");
DefaultMutableTreeNode tnu1=new DefaultMutableTreeNode("Haupt1Unter1");
DefaultMutableTreeNode tnu2=new DefaultMutableTreeNode("Haupt1Unter2");
tnh1.add(tnu1);
tnh1.add(tnu2);
DefaultMutableTreeNode tnh2=new DefaultMutableTreeNode("Haupt2");
DefaultMutableTreeNode tnu3=new DefaultMutableTreeNode("Haupt2Unter1");
DefaultMutableTreeNode tnu4=new DefaultMutableTreeNode("Haupt2Unter2");
tnh2.add(tnu3);
tnh2.add(tnu4);
tn.add(tnh1);
tn.add(tnh2);
this.t=new JTree(tn);
}
public JTree getJTree(){
return t;
}
public TreePath getPath(){
ArrayList<DefaultMutableTreeNode> l=new ArrayList<DefaultMutableTreeNode>();
l.add(new DefaultMutableTreeNode("Java"));
l.add(new DefaultMutableTreeNode("Haupt1"));
l.add(new DefaultMutableTreeNode("Haupt1Unter2"));
TreePath tp=new TreePath(l);
return tp;
}
}