"Update" der JTable funktioniert nicht

M3doXX

Neues Mitglied
Hallo zusammen,

ich habe sehr lange gegoogelt auch viele Probleme wie meins gefunden, aber keine der Lösungen war für mich passend.
Ich habe ein großen JFrame, der zwei JPanels enthält (Jeweils in einer eigenen Klasse).
Im linken Panel befindet sich ein JTree. Bei Klick auf ein Element im Tree soll sich die JTable aus dem rechten Panel aktualisieren. Ich habe folgenden Code:

Code:
public class TableMainPanel extends JPanel{

    
    private JTable table;
    
    
    private static TableMainPanel instance = null;
    
    
    public static TableMainPanel getInstance()
    {
        if(instance == null)
            instance = new TableMainPanel();
        
        return instance;
    }
    
    public TableMainPanel()
    {
        
        instance = this;
        
        setLayout(new BorderLayout());
        setLayout(new FlowLayout());
        setBorder(new EmptyBorder(5, 5, 5, 5));
        
        table = new JTable();
        setBorder(null);
        setLayout(new GridBagLayout());
        
        GridBagConstraints c = new GridBagConstraints();
        c.gridx = 0;
        c.gridy = 0;
        c.fill = GridBagConstraints.BOTH;
        c.weightx = 1;
        c.weighty = 1;
        c.insets = new Insets(0, 0, 0, 0);
        add(new JScrollPane(table), c);
        
        table.addMouseListener(new MouseAdapter() {
            
            @Override
            public void mouseReleased(MouseEvent e) {
                updateTable(Access.getPersonsByTeamId(3));
                
            }
        });
        table.getTableHeader().setReorderingAllowed(false);
        table.setRowSelectionAllowed(true);
        table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        
        
        updateTable(new ArrayList<Person>());
        setVisible(true);
    }
    
    
    
    
    public void updateTable(ArrayList<Person> tableList)
    {
        TableModelPersons model = new TableModelPersons(tableList);
        
        table.setModel(model);
        model.fireTableRowsUpdated(0, model.getRowCount());
    }
    
    
}

Das ist der Code meines Table-Panels. Wenn ich die "update()" Methode aus dieser Klasse heraus aufrufe, dann wird die Tabelle wie gewünscht erneuert. Wenn ich aber aus der TreePanel-Klasse die Methode mit
Code:

Code:
TableMainPanel.getInstance().updateTable("-gefüllte Arraylist-");

aufrufe, dann wird die Tabelle nicht aktualisiert. Der Code in der update-Methode wird zwar durchlaufen, aber die Tabelle ändert sich nicht.

Hier noch mein TableModel:

Code:
public class TableModelPersons extends AbstractTableModel {
	
    private static final Object[] header = {"Name", "Vorname", "Straße + Nr","PLZ", "Ort"};
    private Object rowData[][]; 
    
    public TableModelPersons(ArrayList<Person> data) 
    {      
    	
        rowData = new Object[data.size()][];
   
	    	for (int i = 0; i < data.size(); i++) 
	    	{ 	
	        	Person person = data.get(i);
	        	Long id = person.getId();
	        	String name = person.getName();
	        	String surname = person.getSurname();
	        	
	        	Address address = new Address();
				try {
					address = Access.getAddressById(person.getAddress_id());
				} catch (AddressNotFoundException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
	        	
	        	String street_number = address.getStreetNumber();
	        	String zip = address.getZip();
	        	String city = address.getCity();
	        	   
	          	
	        	rowData[i] =  new Object[] { surname, name, street_number, zip, city, id};
	        } 
	    	fireTableDataChanged();
    }
    
	public int getRowCount() {
        return rowData.length;
    }
 
    public int getColumnCount() {
        return header.length;
    }
    
    public void setValueAt(Object value, int row, int col) { 
    	rowData[row][col] = value;
    	fireTableCellUpdated(row, col);
    }
 
    public Object getValueAt(int row, int col) {
        return rowData[row][col];
    }

    public Long getPersonId(int row) {
        return (Long) rowData[row][5];
    }
    
    @Override
    public String getColumnName(int column) {
        return header[column].toString();
    }
    

    @Override
    public Class<?> getColumnClass(int column) {
        switch (column) {
            case 0:
                return String.class;
            case 1:
                return String.class;
            case 2:
                return String.class;
            case 3:
                return String.class;
            case 4:
                return String.class;
            case 5:
                return Long.class;
            default:
                return String.class;
        }
    }


}

Hat jemand eine Ahnung wo mein Fehler liegt?
Vielen Dank im Vorraus

Gruß

M3doXX
 

Harry Kane

Top Contributor
Ich vermute, daß die Instanz, die du über die statische getInstance() Methode beschaffst, nicht die ist, die in deinem JFrame zu sehen ist.
Ob zwei oder mehr Instanzen angelegt werden, geht aus deinen Schnipseln nicht hervor. Das Anlagen von mehreren Instanzen ist aber aufgrund deiner sehr merkwürdigen Möchtegern-Singleton Implementierung zumindest möglich.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
E Swing Update JTable AWT, Swing, JavaFX & SWT 6
D Swing JTable Problem bei automatischem update von Zellen AWT, Swing, JavaFX & SWT 3
D JTable während edit kein update machen lassen AWT, Swing, JavaFX & SWT 2
H JTable mySQL Update AWT, Swing, JavaFX & SWT 8
C JTable update: Selektion beibehalten AWT, Swing, JavaFX & SWT 12
C [JTable] Update der Datenbank AWT, Swing, JavaFX & SWT 6
M update JTable AWT, Swing, JavaFX & SWT 3
T ProgressBox - Update AWT, Swing, JavaFX & SWT 9
Ernesto95 JavaFX JavaFX GUI mit sehr vielen Update requests AWT, Swing, JavaFX & SWT 4
G update, paintComponent AWT, Swing, JavaFX & SWT 1
T GUI Update /EDT AWT, Swing, JavaFX & SWT 7
izoards JavaFX Concurrency Update UI AWT, Swing, JavaFX & SWT 35
ms_cikar Update swingUtilities Repaint in der Schleife AWT, Swing, JavaFX & SWT 3
J TableView Update/Refresh CPU AWT, Swing, JavaFX & SWT 2
A Verständnisfragen im Umgang mit update() und JFrames AWT, Swing, JavaFX & SWT 5
ralfb1105 Swing JComboBox update der Daten AWT, Swing, JavaFX & SWT 8
blazingblade JavaFX Tableview Clock Column update AWT, Swing, JavaFX & SWT 5
R Update eines Labels bei Methodenaufruf einer anderen Klasse AWT, Swing, JavaFX & SWT 9
B Swing Update Swing Komponente bevor Methode startet. AWT, Swing, JavaFX & SWT 4
M JavaFX ComboBox: Update zur Laufzeit AWT, Swing, JavaFX & SWT 16
W Swing ProgressBar update AWT, Swing, JavaFX & SWT 4
B IconImage update im Tabbedpane AWT, Swing, JavaFX & SWT 3
M Update überschreiben klappt nicht AWT, Swing, JavaFX & SWT 4
Q JList Update Problem AWT, Swing, JavaFX & SWT 1
N Observer: update ruft nicht repaint auf AWT, Swing, JavaFX & SWT 0
S Swing Update eine JTabelle nach einer Drag&Drop Operation AWT, Swing, JavaFX & SWT 0
C Swing Update von swing-TableModels per Thread. Eins geht, das andere nicht, warum? AWT, Swing, JavaFX & SWT 12
V Swing Update Textarea AWT, Swing, JavaFX & SWT 2
T Event Handling JFreeChart Update AWT, Swing, JavaFX & SWT 2
Farbtopf Live update JFreeChart AWT, Swing, JavaFX & SWT 3
F Swing GUI-Thread für automatisches Update nutzen AWT, Swing, JavaFX & SWT 10
El_Lobo Swing bei Update von Graphik Koordinatensystem nicht jedesmal neu zeichnen AWT, Swing, JavaFX & SWT 2
M Update JPanel AWT, Swing, JavaFX & SWT 12
N update model nach dem filtern AWT, Swing, JavaFX & SWT 2
E Umgang mit der Update Methode AWT, Swing, JavaFX & SWT 38
L Update JTree Verzeichnisse AWT, Swing, JavaFX & SWT 9
G Swing Update-Funktion für Swing-Anwendung AWT, Swing, JavaFX & SWT 5
E Swing JTextField Listener nach Update?! AWT, Swing, JavaFX & SWT 2
P 2D-Grafik PaintComponent() übernimmt keine Werte aus update() AWT, Swing, JavaFX & SWT 8
D Swing update eines Labels nicht sichtbar AWT, Swing, JavaFX & SWT 9
N Tablle nach SQL-Update neu Laden AWT, Swing, JavaFX & SWT 4
M SWT grabExcessHorizontalSpace update ? refresh ? AWT, Swing, JavaFX & SWT 6
P Observer und GUI Update AWT, Swing, JavaFX & SWT 2
w0ddes Swing Update: Laufendes GUI updaten AWT, Swing, JavaFX & SWT 8
M Swing Kein update bei simulierten HTML-Link AWT, Swing, JavaFX & SWT 4
C SWT Shell update probleme - Mausbewegung nötig AWT, Swing, JavaFX & SWT 2
hdi Swing GUI update vs. Process Speed AWT, Swing, JavaFX & SWT 31
hdi Swing Gui Update Problem (EDT) AWT, Swing, JavaFX & SWT 6
C JList update über tabbedPane? AWT, Swing, JavaFX & SWT 18
M Update einer JTEextArea AWT, Swing, JavaFX & SWT 2
S Update des fensters beim Ersetzen von JPanels AWT, Swing, JavaFX & SWT 9
G Features nach Update löschen AWT, Swing, JavaFX & SWT 2
J Fragen zur Vererbung und Update AWT, Swing, JavaFX & SWT 12
B Update von JLabels AWT, Swing, JavaFX & SWT 2
C Habe Probleme beim Bild laden! *Update 30.11.2006* AWT, Swing, JavaFX & SWT 28
C JTreeTable update Problem AWT, Swing, JavaFX & SWT 4
S Probleme mit dem Update einer JList AWT, Swing, JavaFX & SWT 7
B View zeichnet Daten aus dem Model ohne Update AWT, Swing, JavaFX & SWT 4
A Update von Frameinhalt und Scrollbar AWT, Swing, JavaFX & SWT 11
F MVC: Update von View und Controller AWT, Swing, JavaFX & SWT 5
P paintComponent /paint/ update/ offscreenImage / Graphics2D / AWT, Swing, JavaFX & SWT 4
S JMenuBar + update AWT, Swing, JavaFX & SWT 3
G JTree - ungültiger selection update AWT, Swing, JavaFX & SWT 2
G Problem mit JLabel Update AWT, Swing, JavaFX & SWT 3
N update()-Methode für Canvas AWT, Swing, JavaFX & SWT 9
A problem mit update nach event, JSplitpane spinnt AWT, Swing, JavaFX & SWT 2
S Update von Grafik auf JPanel AWT, Swing, JavaFX & SWT 2
M GUI Update während der Verarbeitung einer Methode AWT, Swing, JavaFX & SWT 3
T Problem bei Update von JTables in JTabbedPane AWT, Swing, JavaFX & SWT 2
D Problem beim Update von unsichtbaren JComponents mit Timern AWT, Swing, JavaFX & SWT 5
D Swing: GUI-Update-Problem AWT, Swing, JavaFX & SWT 3
J Warum funktioniert das Update des UI nicht? AWT, Swing, JavaFX & SWT 8
I GUI-Update-Probleme AWT, Swing, JavaFX & SWT 2
G Update von JPanel nach Buttonbetätigung AWT, Swing, JavaFX & SWT 1
J Drag und drop aus einer JTable - bitte um Unterstützung AWT, Swing, JavaFX & SWT 2
S HPRO und UPRO gemeinsame JTABLE gemeinsamer RENDERER ? AWT, Swing, JavaFX & SWT 1
F Swing JTable - MultiHeader inkl. Eingabemöglichkeit AWT, Swing, JavaFX & SWT 1
S JTable - Feldinhalte anzeigen AWT, Swing, JavaFX & SWT 15
D Swing JTable Spaltenbreite AWT, Swing, JavaFX & SWT 1
W Gibt es einen "automatischen Listener" in Swing oder JTable oder der ATM-Klasse? AWT, Swing, JavaFX & SWT 14
G jTable - getSelectedRow() AWT, Swing, JavaFX & SWT 3
I JTable mit einem Button zu einer Detail Seite springen AWT, Swing, JavaFX & SWT 4
P JTable Listener für die Änderung einzelner Zellen oder Rows AWT, Swing, JavaFX & SWT 2
D Tastaturabfragen CTRL+t, CTRL+E bei eine JTable, bestehend aus JTextAteas AWT, Swing, JavaFX & SWT 4
P Checkboxes in JTable nicht editable AWT, Swing, JavaFX & SWT 9
F Best-Practise: JTable Text in Zelle zu groß AWT, Swing, JavaFX & SWT 2
izoards JTable in CSV File schreiben... AWT, Swing, JavaFX & SWT 23
Kohl Jedes Objekt einer JTable um ein Zeichen verkürzen AWT, Swing, JavaFX & SWT 7
I JTable, DefaultTableModel, zwei Zahlen multiplizieren. AWT, Swing, JavaFX & SWT 26
M JTABLE / wie oft wurde gewürfelt. AWT, Swing, JavaFX & SWT 1
F JTable vergrößern AWT, Swing, JavaFX & SWT 2
H JTable: Diverse NullPointer-Exceptions zur Laufzeit AWT, Swing, JavaFX & SWT 3
J Swing Werte des JTable werden nicht angezeigt AWT, Swing, JavaFX & SWT 9
T Swing JTable cellRenderer mit jpg Hintergrundfarbe lässt sich nicht ändern. AWT, Swing, JavaFX & SWT 1
HoT Einzelne Zelle in JTable Rahmen unten setzen AWT, Swing, JavaFX & SWT 24
B JTable Zellen zusammenfügen AWT, Swing, JavaFX & SWT 3
M Swing Cell Renderer für Zeilenumbruch in JTable AWT, Swing, JavaFX & SWT 0
H JTable im JSplitPane darstellen AWT, Swing, JavaFX & SWT 2
MadMax2506 Swing JTable lädt sehr lange AWT, Swing, JavaFX & SWT 1
D Zeilenumbruch in einer JTable AWT, Swing, JavaFX & SWT 9

Ähnliche Java Themen

Neue Themen


Oben