Portal > Foren > Java > Desktop-Applikationen und Grafik > Tabellenzellen aktualisieren sich intern, Änderung wird aber nicht angezeigt
Antwort
 
Themen-Optionen Thema durchsuchen
Alt 13.03.2006, 11:50 Nach oben    #1
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.516
Standard Tabellenzellen aktualisieren sich intern, Änderung wird aber nicht angezeigt

Hallo,
ich habe ein Problem. Ich habe mir das Tutorial von Sun zur JTable angeschaut.
Nun habe ich es so, dass ich eine ComboBox für die Editierung einer Spalte verwende.

Alles klar. Ich ändere dort also einen Wert, dieser wird auch intern im Objekt gespeichert .. aber in der Tabelle wird weiterhin der Standardwert angezeigt.
Ich rufe in der setValueAt()-Methode fireTableCellUpdated(row, col) auf. Deswegen versteh ich das gerade nicht.

Meine Codepassage:
Java Code:
  1. public void setValueAt(Object value, int row, int col) {
  2.        
  3.         this.fireTableCellUpdated(row, col);
  4.        
  5.         Barricade bar = (Barricade)this.data.get(row);
  6.        
  7.         switch(col) {
  8.             case 1:
  9.                 if(value.toString().toLowerCase().trim().equals("rot")) {
  10.                     bar.setColor(Color.RED);
  11.                 }
  12.                 else if(value.toString().toLowerCase().trim().equals("schwarz")) {
  13.                     bar.setColor(Color.BLACK);
  14.                 }
  15.                 else if(value.toString().toLowerCase().trim().equals("blau")) {
  16.                     bar.setColor(Color.BLUE);
  17.                 }
  18.                 else if(value.toString().toLowerCase().trim().equals("grün")) {
  19.                     bar.setColor(Color.GREEN);
  20.                 }
  21.                 else if(value.toString().toLowerCase().trim().equals("orange")) {
  22.                     bar.setColor(Color.ORANGE);
  23.                 }            
  24.                 break;
  25.            
  26.             case 3:
  27.                 System.out.println("Spalte 3: " + value);
  28.         }      
  29.     }
Und hier vielleicht noch der Code, mit dem ich die ComboBox als Editor erstelle (ist eigentlich weitestgehend aus dem Tutorial übernommen)
Java Code:
  1. public void setUpColorColumn(JTable table, TableColumn colorColumn) {
  2.         JComboBox comboBox = new JComboBox();
  3.         comboBox.addItem("schwarz");
  4.         comboBox.addItem("rot");
  5.         comboBox.addItem("grün");
  6.         comboBox.addItem("blau");
  7.         comboBox.addItem("orange");
  8.         colorColumn.setCellEditor(new DefaultCellEditor(comboBox));
  9.  
  10.         renderer.setToolTipText("Wähle hier die Farbe des Hindernisses aus.");
  11.         colorColumn.setCellRenderer(renderer);
  12.     }

Kann mir jemand weiterhelfen?
Ist doch sicherlich nur ein kleiner Fehler .. ich habs im Gefühl. *g*

Danke.
Grüße, Ben.
Ben ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 13.03.2006, 12:11 Nach oben    #2
Martin Breuer
 
Benutzerbild von WarrenFaith
 
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.653
Standard

Ohne mich mit JTables auszukennen aktualisierst du deine Tabelle (this.fireTableCellUpdated(row, col) bevor du die Farben änderst, könnte es daran liegen?
__________________
I did it my way - Senseless-Blog
Weihnachtsgeschenk? Schülern helfen - Bodypainting Kalender für 2009
WarrenFaith ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 13.03.2006, 12:15 Nach oben    #3
Projektleiter
 
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.135
Standard

Japp, daran liegt es.
pago ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 13.03.2006, 12:54 Nach oben    #4
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.516
Standard

Das war nur ein Test. Ich habe das vergessen wieder umzuändern.

Wenn ich den Methodenaufruf hinter die switch-Anweisung stecke passiert genau das Gleiche. Nämlich nichts!
Ben ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 13.03.2006, 13:00 Nach oben    #5
Martin Breuer
 
Benutzerbild von WarrenFaith
 
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.653
Standard

Ist zwar keine wirklich performante Lösung, aber als Test mal das verwenden: fireTableDataChanged()
Damit wird ja die komplette Tabelle aktualisiert... (eigentlich)
__________________
I did it my way - Senseless-Blog
Weihnachtsgeschenk? Schülern helfen - Bodypainting Kalender für 2009
WarrenFaith ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 13.03.2006, 13:08 Nach oben    #6
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.516
Standard

Geht nicht .. :-/

Ich habe die Tabelle so erstellt.
Java Code:
  1. JTable table = new JTable(this.tableMode);
  2. table.setPreferredScrollableViewportSize(new Dimension(230, 300));
  3. this.setUpColorColumn(table, table.getColumnModel().getColumn(1));
  4.  
  5. JScrollPane scrollPane = new JScrollPane(table);

*help*
Ben ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.03.2006, 07:45 Nach oben    #7
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.516
Standard

*schubs*
Huhu .. hat noch jemand einen Rat?

[EDIT]
Jajaja ... is' gut.
Ihr habt ja Recht .. ihr habt ja Recht ... .

Geändert von Ben (14.03.2006 um 09:21 Uhr)
Ben ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
PingBacks sind an
RefBacks sind aus


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:51 Uhr.


Powered by vBulletin® Version 3.7.4 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45