2010-11-19 6 views
3

Ich erstelle eine Anwendung, wo ich 3 Fenster mit Schaltflächen habe, die dynamisch Schaltflächen im nächsten Fenster je nach Auswahl erstellen, klicken Sie auf die letzte Schaltfläche zeigt eine Tabelle mit Daten gebracht up über eine SQL-Abfrage:Löschen eines JScrollPane aber kann dann keine Tabellen 'anhängen'

[buttonPane1] [buttonPane2] [buttonPane3] [Tabelle]

Wenn ein Benutzer auf eine Schaltfläche auf alle drei Scheiben angeklickt und dann will ihre Wahl auf buttonpanel1 ändern, wird es bringen die Auswahlen in tastenfeld2 und mit

buttonPanel3.removeAll(); 
buttonPanel3.repaint(); 

Ich kann das dritte Tastenfeld löschen, mein Problem ist das Löschen des Tisches. Ich möchte es aus der Tabelle ScrollPanel entfernen, aber wenn ich es versuche

tableScrollPanel.removeAll(); 

es bedeutet nur, dass die Tabelle nie angezeigt wird.

Wie kann ich alle aktuellen Tabelle entfernen, sondern erlauben einen Tisch werden ‚wieder angebracht:‘ Ich tue dies zu schaffen und ‚anhängen‘ auf den Tisch

jTableTemp.setModel(new DefaultTableModel(
        tableContent, tableTitles)); 
tableScrollPanel.setViewportView(jTableTemp); 

Dank sehr viel

+0

Warum nicht den Verweis auf "DefaultTableModel" behalten und durch 'removeRow (i)' entfernen? – khachik

+0

Erfahren Sie, wie Sie standardmäßige Java-Namenskonventionen verwenden. Zum Beispiel Variablenname NICHT mit einem Großbuchstaben beginnen. – camickr

+0

Entschuldigung, ich habe die Namenskonventionen verwendet, habe sie einfach dafür geändert und ihnen versehentlich Großbuchstaben gegeben. – jaz9090

Antwort

2

Versuchen Sie, die Tischdeko Modell zu einem DefaultTableModel mit leeren Daten und den ursprünglichen Headern, dann neu streichen. Solange Sie ein JScollPane um die JTable gewickelt haben, sollten die Header angezeigt werden, vorausgesetzt, dass dies das ist, was Sie wollen.

Andernfalls können Sie das Ansichtsfenster auf eine neue Instanz einer JTable mit neuen Headern festlegen.

+0

bearbeitet Ich habe das Tabellenmodell zu einem DefaultTableModel mit leeren Daten und den ursprünglichen Kopfzeilen wie oben vorgeschlagen und dann als ViewPortView auf dem enthaltenden ScrollPanel, funktioniert wie ein Charme! – jaz9090