Swing Tabellen Überschrift mit AbstractTableModel



  • Hi ...

    Ich Bastel derzeit an einer kleinen Anwendung die mir unter anderem auch
    eine "Benutzerliste" ausgeben soll. Die Tabelle an sich funktioniert auch schon,
    durch diese Überladung und das redefinieren der Abstrakten Methoden
    aus AbstractTableModel

    public String getValueAt(int row, int col)
    public int getRowCount()
    public int getColumnCount()
    

    Damit zeichnet mir mein Programm eine Swing Tabelle, leider ohne einen
    Tabellen Kopf. In der AbstractTableModel Klasse ist aber bereits zumindest
    ein Standard Header definiert in der Methode getColumnName(int col).

    Auch ein Überladen dieser Methode hilft (wie zu erwarten) nicht.

    Das einbinden der Tabelle erfolgt (vereinfacht) so:

    myTable = new JTable();
    myTable.setModel(new myModel()) //myModel ist von AbstractTableModel abgeleitet
    myPanel.add(myTable);
    

    Auf dem Panel wird die entsprechende Tabelle auch richtig angezeigt nur eben
    ohne Header. Vermutlich habe ich (ist mein erstes swing Projekt)
    einfach nur irgend etwas misverstanden oder vergessen und die Code Beispiele
    die ich gefunden habe haben mir bis jetzt nur mäßig weitergeholfen.

    Fällt jemandem was ins Auge?
    Gibts ne "Checkliste" an was man bei Tabellen alles denken muss?
    Ich wär für jede Hilfe dankbar 🙂



  • Ich finde die Swing Tutorials von Sun direkt immer recht hilfreich...

    Hier der Link zu "How to use tables":
    http://java.sun.com/docs/books/tutorial/uiswing/components/table.html

    Gruß



  • Problem Gelöst ... anscheinend besitzt eine Tabelle keinen eigenen Header
    sondern dieser wird nur in Verbindung mit einem anderen Anzeigeelement sichtbar.

    Das Tabelleneinbinden von oben müsste also wie folgt aussehen:

    myTable = new JTable(); 
    myTable.setModel(new myModel()) //myModel ist von AbstractTableModel abgeleitet 
    
    //Tabelle in ein JScrollPane einfügen
    JScrollPane myPane = new JScrollPane(myTable);
    
    //Pane einfügen, ab jetzt wird der Header aus dem Modell mit angezeigt
    myPanel.add(myPane);
    

    Vielen Dank Powerloop


Anmelden zum Antworten