Methode getValueAt() richtig implementieren?

cHucKy51

Mitglied
Hallo zusammmen,

ich bräuchte gerade ein wenig Hilfe beim Anpassen meiner TableModel-Methode getValueAt(). Ich habe eine HashMap namens itemMap bestehend aus nem Datum als Schlüssel und nem DoppelArray (2 Werte) als Wert.

Wie muss ich meine Methode anpassen, dass es stimmt?

Folgendes habe ich schon geschrieben:

Java:
		public Object getValueAt(int rowIndex, int columnIndex) {
		
		Object[][] itemArray = new Object[itemMap.size()][3];

	    for (int zeile = 0; zeile < itemMap.size(); zeile++) {
	            
	        if(columnIndex == 0)
	        {
	        	itemArray[zeile][0] = itemMap.keySet().toArray()[zeile];
	        }
	        
	        else if(columnIndex == 1)
	        {
	        	itemArray[zeile][1] = itemMap.get(itemMap.keySet().toArray()[zeile]);
	        }
	        
	        else if(columnIndex == 2)
	        {
	        	itemArray[zeile][2] = itemMap.get(itemMap.keySet().toArray()[zeile]);
	        }
	    }
	    
	    return itemArray[rowIndex][columnIndex];
	}

Wie man sieht habe ich immer 3 Spalten.
 
Zuletzt bearbeitet:
Erklär mal kurz, was Du meinst zu tun bzw tun willst - mir ist ganz wirr vor lauter Arrays...
Mir ist auch nicht klar, weshalb über die Zeilen iteriert wird - der rowIndex wird doch übergeben.
 
Da hast du recht, der Codeschnipsel war leicht verwirrend. Hier nochmal meine aktuelle Version. Die Überschriften der Spalten und die erste Spalte werden richtig angezeigt, der Rest funktioniert leider noch nicht.

Java:
	public Object getValueAt(int rowIndex, int columnIndex) {
		
		Object[][] itemArray = new Object[itemMap.size()][columnNames.length];   
             
	        if(columnIndex == 0)
	        {
	        	itemArray[rowIndex][0] = itemMap.keySet().toArray()[rowIndex];			// Spalte 0 enthält alle Keys
	        }
	        
	        else
	        {
	        	itemArray[rowIndex][columnIndex] = itemMap.values().toArray()[rowIndex];
	        }

	    return itemArray[rowIndex][columnIndex];
	}
 
Beschreib doch mal in Worten, was da passieren soll. Und wie füllst Du die HashMap?
 
Sorry, werd ich beim nächsten Mal besser machen. Nun hab ich's aber doch hinbekommen.

Java:
	public Object getValueAt(int rowIndex, int columnIndex) {

		String result = (String) itemMap.keySet().toArray()[rowIndex];
		if (columnIndex > 0) {
			String[] holeArray = itemMap.get(result);
			result = holeArray[columnIndex - 1];
		}

		return result;
	}
 
Gut, ich glaube dann jetzt einfach, dass ich Dich mit meinen Fragen zu der richtigen Lösung gelotst habe. ;)
 
Zurück