JSplitPane & JTable

  • Themenstarter Themenstarter test
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
T

test

Gast
Hallo!

Ich habe ein JSplitPane erstellt. Auf der linken Seite ist eine JTree. Auf der rechten soll ein JTable sein. Ich habe es auch erstellet, nur fehlt der JTableHeader. was mach ich falsch?

Code:
      JSplitPane sp = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
      DefaultMutableTreeNode top = new DefaultMutableTreeNode("Projekte");
      DefaultMutableTreeNode top1 = new DefaultMutableTreeNode("Projekt 2");
      
      tree = new JTree(top);
        tree.getSelectionModel().setSelectionMode
                (TreeSelectionModel.SINGLE_TREE_SELECTION);
        //tree.addTreeSelectionListener(this);

        DefaultMutableTreeNode section = new DefaultMutableTreeNode("Konto");
        section.add(new DefaultMutableTreeNode("Anlegen"));
        section.add(new DefaultMutableTreeNode("Editieren"));
        section.add(new DefaultMutableTreeNode("Löschen"));

        top.add(section);

        section = new DefaultMutableTreeNode("Protokoll");
        section.add(new DefaultMutableTreeNode("Anlegen"));
        section.add(new DefaultMutableTreeNode("Editieren"));

        top.add(section);
        
   

        JScrollPane scroll = new JScrollPane(new JTree(top));
        
        
      	JTable table = new JTable(new String[][]{{"1", "2", "3"},{"4", "5", "6"}}, new String[]{"A", "B", "C"});
      
      	JTableHeader header = table.getTableHeader();
      
      	TableColumnModel columnModel = header.getColumnModel();
      
      	TableColumn aColumn = new TableColumn();

      	aColumn.setHeaderValue("D");

      	aColumn.setModelIndex(1); // Index 1 im Model sind also "2" und "5"
      	columnModel.addColumn(aColumn);
      

      	columnModel.moveColumn(0, 2); // spalte 0 (mit Tiel "A") verschieben an position 2 im model
      
      	header.setResizingAllowed(false);
      	header.setReorderingAllowed(false);
        
        
        JPanel lblPanel = new JPanel();
        //JTable table = new JTable(rowData, columnNames);
      	

        lblPanel.add(table);


        sp.setLeftComponent(scroll);
        sp.setRightComponent(lblPanel);

        Dimension minimumSize = new Dimension(150, 100);
               scroll.setMinimumSize(minimumSize);
               lblPanel.setMinimumSize(minimumSize);
               sp.setDividerLocation(150);


               sp.setPreferredSize(new Dimension(500, 400));
      
      

      
      box3 = Box.createVerticalBox();
      box3.add(new JScrollPane(sp));

Danke im Voraus!
 
Damit eine JTable ihren Header anzeigen kann, muss sie in einer JScrollPane sein (so wie dein JTree in einem ScrollPane ist).
 
danke! hätte da noch eine frage: ich will das sich die tabelle an die größe des JPanels richtet. also ohne Dimension oder so.
 
Da musst du ein LayoutManager installieren.

Zum Beispiel:
Code:
JPanel panel = ...
panel.setLayout( new GridLayout( 1, 1 ));
panel.add( ... );
Jetzt wird dieses Panel eine Component darstellen.

Guck mal hier rein, da steht mehr zu LayoutManagern.
 
Versuch mal die JScrollPane einfach als rechte Komponente einzusetzen, anstatt erst noch den Umweg über das Panel zu gehen.
Sollte glaube ich klappen :|
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben