JTABLE setvalueat methode!

L

Lender

Gast
Guten Tag kann sich jemand mein Tablemodel angucken und mir kurz Feedback geben ob ich meine setvalueat methode richtig gemacht habe?


Java:
public class TableModel extends AbstractTableModel {
	private List<DispoVO> dispoVO;

	public void uebergabe_liste(List<DispoVO> list) {
		this.dispoVO = list;
		for (int i = 0; i < dispoVO.size(); i++) {
			setValueAt(dispoVO, i, 1);
		}
		fireTableDataChanged();
	}

	String[] header = { "Äl", "Gr", "AnzufStk", "Filialbest", "VerkStk",
			"Lagerbest", "Fakturabest", "Folgt", "Offene Posten", "UnterwHin",
			"UnterwRück", "Merkmal", "GültigVon", "GültigBis" };

	@Override
	public String getColumnName(int column) {
		return header[column];

	}

	@Override
	public int getColumnCount() {
		return header.length;
	}

	@Override
	public int getRowCount() {
		if (dispoVO == null) {
			return 0;
		}

		else {
			return dispoVO.size();
		}
	}

	@Override
	public Object getValueAt(int row, int column) {
		DispoVO dispo = dispoVO.get(row);
		switch (column) {
		case 0:
			dispo.getAl();
			break;
		case 1:
			dispo.getGroesse();
			break;
		case 2:
			dispo.getAnzufStk();
			break;
		case 3:
			dispo.getFilBest();
			break;
		case 4:
			dispo.getVerkStk();
			break;
		case 5:
			dispo.getLagerBest();
			break;
		case 6:
			dispo.getFaktBest();
			break;
		case 7:
			dispo.getFolgt();
			break;
		case 8:
			dispo.getOffeneAnf();
			break;
		case 9:
			dispo.getUnterwHin();
			break;
		case 10:
			dispo.getUnterwRueck();
			break;
		case 11:
			dispo.getMerkmal();
			break;
		case 12:
			dispo.getGueltigVon();
			break;
		case 13:
			dispo.getGueltigBis();
			break;

		default:
			return null;
		}
		return dispo;
	}

	public void setValueAt(Object value, int row, int column) {
		for (int i = 0; i < dispoVO.size(); i++) {
			switch (column) {
			case 0:
				setValueAt(dispoVO.get(i).getAl(), i, 0);
				break;
			case 1:
				setValueAt(dispoVO.get(i).getGroesse(), i, 1);
				break;
			case 2:
				setValueAt(dispoVO.get(i).getAnzufStk(), i, 2);
				break;
			case 3:
				setValueAt(dispoVO.get(i).getFilBest(), i, 3);
				break;
			case 4:
				setValueAt(dispoVO.get(i).getVerkStk(), i, 4);
				break;
			case 5:
				setValueAt(dispoVO.get(i).getLagerBest(), i, 5);
				break;
			case 6:
				setValueAt(dispoVO.get(i).getFaktBest(), i, 6);
				break;
			case 7:
				setValueAt(dispoVO.get(i).getFolgt(), i, 7);
				break;
			case 8:
				setValueAt(dispoVO.get(i).getOffeneAnf(), i, 8);
				break;
			case 9:
				setValueAt(dispoVO.get(i).getUnterwHin(), i, 9);
				break;
			case 10:
				setValueAt(dispoVO.get(i).getUnterwRueck(), i, 10);
				break;
			case 11:
				setValueAt(dispoVO.get(i).getMerkmal(), 0, 11);
				break;
			case 12:
				if (!dispoVO.get(i).getGueltigVon().equals(null)) {
					setValueAt(dispoVO.get(i).getGueltigVon(), 0, 12);
					break;
				}
			case 13:
				if (!dispoVO.get(i).getGueltigBis().equals(null)) {
					setValueAt(dispoVO.get(i).getGueltigBis(), 0, 13);
				}
				break;

			default:
				return;
			}
		}
		fireTableCellUpdated(row, column);
	}

	public boolean isCellEditable(int r) {
		return false;
	}

}


Danke mit freundlichen Grüßen lender
 
S

SlaterB

Gast
desweiteren:
statt gefühlt 70.000x dispoVO.get(i) zu schreiben, könntest du auch einmal eine Variable d oder dispo anlesen, schon wird alles lesbarer,

und da du erneut setValueAt(); aufrufst, gibts eine Endlosschleife,
den Parameter value ignorierst du dagegen,
was ist eigentlich die Funktion dieser Methode in Worten?
 
Z

zentrum

Gast
ja im DispoVO gibt es doch 11 Einträge muss doch 1 Eintrag pro Zeile einfügen. 1 DispoVO besteht dann aus mehreren Attributen .


Deswegen muss ich jeden Eintrag extra behandeln oder nicht?!
 
S

SlaterB

Gast
> ja im DispoVO gibt es doch 11 Einträge muss doch 1 Eintrag pro Zeile einfügen

überleg doch was du da sagst und worum es überhaupt geht, was ist überhaupt der Sinn der Funktion?

ganz ruhig im Buch nachlesen:
in einer Zeile in einer Spalte einen einzelnen Wert abspeichern,
dazu passt dein Code und dein Text überhaupt nicht

also ein switch macht schon Sinn, aber mit richtigen Code
 

ARadauer

Top Contributor
Java:
public void uebergabe_liste(List<DispoVO> list) {
        this.dispoVO = list;
        for (int i = 0; i < dispoVO.size(); i++) {
            setValueAt(dispoVO, i, 1);
        }
        fireTableDataChanged();
    }
nein... setValueAt ist die Methode die aufgerufen wird, wenn der user was eingibt, das braucht du nicht aufrufen...

dispoVO sind deine daten
getValueAt hohlt sich das Table einen Wert von dispoVO
und mit setValue wird einer gesetzt in dispoVO

ändert sich deine komplette liste, braucht du nur dispoVO zu setzen und fireTableDataChanged, du musst keine setValueAt aufrufen...
 
Z

ZENTRUM

Gast
achso....

also sobald sich die komplette liste ändern einfach nur dies hier

Java:
	public void uebergabe_liste(List<DispoVO> list) {
		this.dispoVO = list;
		fireTableDataChanged();
	}

und dann weis das TableModel aha, es sind nur 11 Einträge und baut mir dies so wie ich es haben will....
or?!
 
L

lender

Gast
eventuell hat jemand ein fertig Programmiertes Tablemodel beispiel das ich testen kann?!
 
Z

zentrum

Gast
ich brauch das AbstractTableModel das ist schon richtig. Brauche nur ein Beispiel um nach voll ziehen zu können.!
 
G

Gast2

Gast
Das DefaultTableModel implementiert doch das AbstractTableModel, da kannst du dir mal anschauen wie die einzelnen Methoden implementiert wurden.
 
Z

zentrum

Gast
hab alles hinbekommen, er zeigt mir die werte an:)... aber eine frage kann ich so auf null überprüfen?!

Java:
case 12:
	if(!dispo.getGueltigVon().equals(null)){
		return dispo.getGueltigVon();
		}
		break;
case 13:
	if(!dispo.getGueltigBis().equals(null)){
		return dispo.getGueltigBis();
		}
		break;
		}
	}
 
S

SlaterB

Gast
== null

aber gib doch auch ruhig null zurück, am Ende hast du sonst
> return dispo;
oder inzwischen was anders? das macht doch wenig Sinn
 
Z

zentrum

Gast
kann ich genaue angaben machen im moment habe ich dies so:

Java:
	public Object getValueAt(int row, int col) {
		
		if(!dispoVO.equals(null)){
			for(DispoVO dispo : dispoVO){
			switch(col){
			case 0:
				return dispo.getAl();
			case 1:
				return dispo.getGroesse();
			case 2:
				return dispo.getAnzufStk();
			case 3:
				return dispo.getFilBest();
			case 4:
				return dispo.getVerkStk();
			case 5:
				return dispo.getLagerBest();
			case 6:
				return dispo.getFaktBest();
			case 7:
				return dispo.getFolgt();
			case 8:
				return dispo.getOffeneAnf();
			case 9:
				return dispo.getUnterwHin();
			case 10:
				return dispo.getUnterwRueck();
			case 11:
				return dispo.getMerkmal();
			case 12:
				if(dispo.getGueltigVon() != null){
					return dispo.getGueltigVon();
					}
					break;
			case 13:
				if(dispo.getGueltigBis() != null){
				return dispo.getGueltigBis();
				}
				break;
			}
			}
		}
		fireTableDataChanged();
		return col;	
			}

jetzt schreibt er mir in jede ROW 19 rein aber will ja nur in einer Spalte dies haben, gehen auch Spalten/zeilen unterscheidungen?!
 
S

SlaterB

Gast
überleg doch immer was du machst, einfache Befehle aneinandergereiht erzielen die Wirkung,

in Zeile 4 durchläufst du die dispoVO-Liste
> for(DispoVO dispo : dispoVO){

danach das switch, es wird also immer was vom ersten dispo-Element zurückgeliefert, den Parameter row ignorierst du komplett

einfache Alternative: for-Schleife weglassen, den gesuchen dispo extrem simplel korrekt bestimmen:

DispoVO dispo = dispoVO.get(row);
// der row-te dispo ist der aktuell benötigte

-----

das zum Thema Zeile,
die Spalten sollten durch das switch eigentlich korrekt unterschieden werden, ist da ein Fehler?
'19' deutet natürlich darauf hin, dass als col 19 übergeben wurde und das kommt in deinem switch nicht vor, am Ende hast du
> return col;
wäre dann die Ausgabe 19, eher merkwürdiges Verhalten von einer JTable..
 
Zuletzt bearbeitet von einem Moderator:
Ähnliche Java Themen
  Titel Forum Antworten Datum
KeTho1712 Java Swing: JTable standardmäßig füllen, sodass bei Start bereits Datensätze gespeichert sind Allgemeine Java-Themen 1
H Swing JTextArea als TableCellRenderer in JTable - wie Zeilen selektieren? Allgemeine Java-Themen 47
D JTable mit JTextAreas in den Zellen Allgemeine Java-Themen 8
X Swing JTable zeigt nichts Allgemeine Java-Themen 4
G jTable aktualisieren?! Allgemeine Java-Themen 1
S JTable - mehrere ausgewählte Rows in ArrayList Allgemeine Java-Themen 5
A Fehler beim Aktualisieren JTable Allgemeine Java-Themen 1
D falsche Zeile aus JTable in MySQL gelöscht Allgemeine Java-Themen 6
offi Drag and Drop mehrerer File aus Explorer in JTable Allgemeine Java-Themen 1
V JTable Externe Lib Allgemeine Java-Themen 2
F JTable Pfeiltasten-Verhalten Allgemeine Java-Themen 1
T jTable Gestaffelte Überschriften Allgemeine Java-Themen 22
Paul15 2D Arraylist in Jtable Allgemeine Java-Themen 1
R jTable, nur Werte zwischen 2 Double values ausgeben Allgemeine Java-Themen 3
B Klassen JTable mit einer Liste Allgemeine Java-Themen 0
A JTable Bilder Allgemeine Java-Themen 1
F JTable mit Zellen die sich durch andere Eingaben füllen Allgemeine Java-Themen 1
A JTable - CellRange auslesen Allgemeine Java-Themen 2
A jTable Renderer Allgemeine Java-Themen 5
N JTable filtern Allgemeine Java-Themen 3
hdi JTable#print & Druckgröße Allgemeine Java-Themen 6
S JTable: Model durch ein anderes ersetzen Allgemeine Java-Themen 2
G JTable: ListSelectionListener removen Allgemeine Java-Themen 8
M JTable + ArrayList Allgemeine Java-Themen 3
G Aktualisierung einer JTable erfolgt nicht zuverlässig Allgemeine Java-Themen 14
E Hintergrund einer JTable änden Allgemeine Java-Themen 2
G Darstellung von Ergebnissen einer Dokumentensuche über eine JTable Allgemeine Java-Themen 19
Iron Monkey Inhalt von JTable in die Textdatei mit StringWidth schreiben Allgemeine Java-Themen 3
P jTable getSelectedRow? Allgemeine Java-Themen 2
B JTable eigene Daten Add Methode Allgemeine Java-Themen 2
B LEERE JTable MouseListener + popupmenu Allgemeine Java-Themen 2
X xml aus Zip in JTable Allgemeine Java-Themen 2
L jTable drag & drop einzelner Zeilen Allgemeine Java-Themen 4
S JTable und Spalten löschen Frage Allgemeine Java-Themen 5
H JTable per iText in PDF: Größenanpassung möglich? Allgemeine Java-Themen 2
F XML zu JTable mit JDOM Allgemeine Java-Themen 2
E JTable wird nicht angezeigt Allgemeine Java-Themen 11
Screen ImageIcon in Cell der JTable Allgemeine Java-Themen 2
G JTable mit Keylistener geht nicht Allgemeine Java-Themen 3
C Swing JTable Vector aus DB adden Allgemeine Java-Themen 3
A Swing JTable Polymorphismus Allgemeine Java-Themen 2
trash super + JTable Allgemeine Java-Themen 7
D JTable -> 1Spalte nur zahlen Allgemeine Java-Themen 2
C Swing Daten zwischen JTable teilen Allgemeine Java-Themen 6
hdi JTable: Sortierung von Date-Objekten Allgemeine Java-Themen 4
B JTable nach Icon sortieren Allgemeine Java-Themen 6
N Exception beim auslesen einer JTable Allgemeine Java-Themen 5
M jdesktop binding: jTable update nach Änderung... Allgemeine Java-Themen 3
D JTable mit GROUP BY Allgemeine Java-Themen 23
martin82 Regex - JTable - Filter Allgemeine Java-Themen 10
X JTable mit Checkboxen -> Setzen (true/false) der Checkboxen per Mouseklick... Allgemeine Java-Themen 3
P JTable drucken Allgemeine Java-Themen 8
A JTable Feldwerte in JTextFelder mit blättern Allgemeine Java-Themen 5
DStrohma [Erledigt] Wieso kann ich Taste 'ENTER' in JTable nicht belegen? Allgemeine Java-Themen 2
M jTable Allgemeine Java-Themen 19
D jTable und TableModel Allgemeine Java-Themen 2
B Exception bei leerem JTable verhindern Allgemeine Java-Themen 10
A Observable BeansBinding an einer JTable bzw. JXTable Allgemeine Java-Themen 3
P Textfile -> Array -> JTable Allgemeine Java-Themen 9
S JTable Aktuelisieren ber Wie ? Allgemeine Java-Themen 4
MQue JComboBox in JTable Allgemeine Java-Themen 4
J Ergebnismenge eines SQL-Queries in JTable anzeigen Allgemeine Java-Themen 3
MQue JTable alles rechts Allgemeine Java-Themen 8
G Checkboxen abfragen,Auswahl sichern, JTable laden Allgemeine Java-Themen 2
G Hibernate, JTable und Performance Allgemeine Java-Themen 17
R JTable und Cell Renderer Allgemeine Java-Themen 3
M JTable: Anzahl Zeichen bei Eingabe Allgemeine Java-Themen 2
S Welche Speicherung von Daten bei Kalendarfunktion der jtable Allgemeine Java-Themen 7
J keylistener auf jtable Allgemeine Java-Themen 19
C JTable, Abstand zwischen Zellen Allgemeine Java-Themen 2
G Eindeutiges Identifizieren einer JTable/Component z.laufzeit Allgemeine Java-Themen 2
D JTable -> ArrayIndexOutOfBoundsException bei Mausklick Allgemeine Java-Themen 2
S JTable editieren + in JTextField schreiben Allgemeine Java-Themen 7
G Daten in / für JTable beim Scrollen nachladen? Allgemeine Java-Themen 5
M JTable verändert Position auf meinem JPanel Allgemeine Java-Themen 3
P JTable Allgemeine Java-Themen 2
H JTable Löschen [Alle Zeilen aufeinmal Löschen] Allgemeine Java-Themen 6
P JTable setDataVector Allgemeine Java-Themen 2
D Scrollbalken in meiner JTable auf einmal weg. Allgemeine Java-Themen 2
P JTable Allgemeine Java-Themen 8
P JButtons mit JTable verknüpfen Allgemeine Java-Themen 16
G fehler bei JTable mit JDK1.6 Allgemeine Java-Themen 4
M CheckBox in JTable - ich verzweifle gleich Allgemeine Java-Themen 2
P JTable/Vector Allgemeine Java-Themen 5
P JTable Allgemeine Java-Themen 4
E JButton bleibt in der JTable Allgemeine Java-Themen 2
E JButton in einer Zelle von JTable Allgemeine Java-Themen 16
P JTable selektierte Zeile mitwandern Allgemeine Java-Themen 2
F Checkbox in JTable , eigener Cellrenderer -wie gehts weiter? Allgemeine Java-Themen 2
P JTable suchen in einer Spalte Allgemeine Java-Themen 24
G JTable wird nicht richtig aufgebaut Allgemeine Java-Themen 9
C Ausdrucken einer JTable in eine Datei mit Erhalt des Formats Allgemeine Java-Themen 3
W Columns austauschen/verschieben von jtable Allgemeine Java-Themen 3
P 3rd party JTable libraries (freeware/opensource) Allgemeine Java-Themen 19
D JTable aus Eclipse Ok, kompeliert aber nicht Allgemeine Java-Themen 6
G mySQL und JTable Allgemeine Java-Themen 7
D JTable und Buttons Allgemeine Java-Themen 16
B JScrollPane in einer JTable aktualisieren? Allgemeine Java-Themen 9
G CheckBox in JTable Allgemeine Java-Themen 3
S JTable erzeugen und updaten Allgemeine Java-Themen 10

Ähnliche Java Themen

Neue Themen


Oben