nachträglich adden von Button, mit Jtree

eddy23

Grünschnabel
Folgendes Problem: ich will wenn ich auf Layout im JTree klicke das im panelLeft ein button erscheint,
mein Button wird aber nicht angezeigt.

Code:
package options;

import java.awt.*;
import java.util.Hashtable;
import java.util.Vector;
import javax.swing.*;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.TreePath;

public class Options  extends JFrame  {

    private JPanel panelLeft;
    private JFrame dialog;
    private JPanel panelRight;

    public Options()  {
        setTitle("Optionen");
        setLayout(null);
        setSize(500,500);
        dialog = this;
        panelLeft = new JPanel();
        panelRight = new JPanel();
      
        panelLeft.setLayout(new GridLayout());
        panelRight.setLayout(new GridLayout());
       
        panelLeft.setBounds(0,0,150,400);
        panelRight.setBounds(0,0,150,400);
       
        add(panelLeft);
        add(panelRight);

        JPanel panelbottom = new JPanel();
        panelbottom.setBounds(0,400,500,100);
       
        add(panelbottom);
        panelbottom.add(new JButton("OK"));
        panelbottom.add(new JButton("Abbrechen"));
        panelbottom.add(new JButton("Anwenden"));
        
        DefaultMutableTreeNode general, look, subchild;
        general = new DefaultMutableTreeNode("Allgemeines");
        look = new DefaultMutableTreeNode("Layout");
        general.add(look);
   
        JTree tree = new JTree(general);
        tree.setRootVisible(true);
        Container cp = getContentPane();
        panelLeft.add(new JScrollPane(tree), BorderLayout.CENTER);
        
       tree.getSelectionModel().addTreeSelectionListener(new TreeSelectionListener(){
            public void valueChanged(TreeSelectionEvent e) {
                treeAction(e);
            }
       
       });
       
        setVisible(true);
        setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE); 
       
    }
    
     public static void main (String[] args) {
        Options optn = new Options();
    }

    public void treeAction( TreeSelectionEvent e ) 
        { 
          TreePath path = e.getNewLeadSelectionPath(); 
//          if (path.toString().equals("[Allgemeines, Layout]")) {
              setVisible(false);
              Layout xyz = new Layout();
              getContentPane().add(xyz);
              setVisible(true);
//              validate();
          }
//        } 
    
     
}

Code:
public class Layout extends JPanel {
        public Layout(){
           super();
            
            JButton testbutton = new JButton("test");
            add(testbutton);
            
          setVisible(true);
           
        }
    }

hoffe das mir wer helfen kann.

thx
 
Ich sehe so direkt dass du keine ordentlichen Layouts benutzt und zum testen ist es immer ganz hilfreich eine Background Color zu setzen, damit man sehen kann wo überhaupt irgendwas ist.
 
Zurück