# JTable-Zeilen mit Werten füllen



## jean20 (7. Dez 2004)

Hallo,

ich habe eine Tabelle erstellt mit 3 Spalten. Wie kann ich jetzt in so eine Tabellen-Zeile Werte einfügen. Z.B. die Zeile

jean, x, y

Danke für die HIlfe. Hier mein Code:

```
private JTable getJTable() {
		if (jTable == null) {
			jTable = new JTable();
			jTable.addColumn(getColumnName());
			jTable.addColumn(getColumnComponent());
			jTable.addColumn(getColumnExtension());
		}
		return jTable;
	}
	
	private TableColumn getColumnName() {
		if (tableColumnName == null) {
			tableColumnName = new TableColumn();
		}
		return tableColumnName;
	}
	
	private TableColumn getColumnComponent() {
		if (tableColumnComponent == null) {
			tableColumnComponent = new TableColumn();
		}
		return tableColumnComponent;
	}
	
	private TableColumn getColumnExtension() {
		if (tableColumnExtension == null) {
			tableColumnExtension = new TableColumn();
		}
		return tableColumnExtension;
	}
```

_Edit von Roar: Bitte codetags benutzen_


----------



## Roar (7. Dez 2004)

schau mal in das tutorial in der FAQ


----------



## jean20 (8. Dez 2004)

Danke, für den Tip. Habe dort nachgelesen.
Aber eine Frage habe ich noch:
Wenn man eine Tabellenzeile erstellt, dann kann man das in Form eines Vectors machen. Wie kann ich aber in eine Zeile  ein Jlabel oder JButton einfügen?


----------



## bygones (8. Dez 2004)

steht auch in dem Tutorial.. du brauchst einen CellRenderer


----------



## jean20 (8. Dez 2004)

[Ich habe versuch ein Button ganz normal in den Vector einzufügen, aber dann beim ausführen erschein in der Zelle kein Button sondern dieser Text: 1	

javax.swing.JButton[,0,0,108x15,invalid,layout=javax.swing.OverlayLayout,alignmentX=0.0,alignmentY=0.5,border=javax.swing.plaf.BorderUIResource$CompoundBorderUIResource@2c1e6b,flags=296,maximumSize=,minimumSize=,preferredSize=,defaultIcon=,disabledIcon=,disabledSelectedIcon=,margin=javax.swing.plaf.InsetsUIResource[top=2,left=14,bottom=2,right=14],paintBorder=true,paintFocus=true,pressedIcon=,rolloverEnabled=false,rolloverIcon=,rolloverSelectedIcon=,selectedIcon=,text=,defaultCapable=true]	3


----------



## bygones (8. Dez 2004)

das ist die toString Methoden-Ausgabe des Buttons....

du kannst nicht einfach einen Vector mir Buttons der Tabelle übergeben !! im 4. Kapitel des Tutorials geht es um die Darstellung der Daten: http://www.java-forum.org/de/viewtopic.php?t=7708 !

Du musst einen eigenen CellRenderer schreiben !!


----------



## jean20 (8. Dez 2004)

Ich habe das Tutorial über TableCellRenderer durchgelesen. Das Thema ist aber nicht so einfach zu verstehen. Klingt irgendiwie kompliziert. Ich möchte ein CellRenderer machen der in der Tabelle in der ersten Spalte, für jede Zeile immer ein Button anzeigt. Dafür brauche ich einen ButtonCellRenderer. Aber wie mache ich das? Muss ich dafür immer meiner JTable ein TableModel zuweisen. Geht es nicht einfach mit JTable? 
Kann mir jemand helfen.


```
private JTable getJTable() {
		if (jTable == null) {
			jTable = new JTable(getTableData(), getTableColumn());
			jTable.getColumn("modi").setPreferredWidth(100); 
			jTable.getColumn("component").serPreferredWidth(100); 
			jTable.getColumn("x").setPreferredWidth(5); 
		}
		return jTable;
	}
	
	private Vector getTableData(){
		Vector data = new Vector();
		Vector rowA = new Vector(); // erste zeile
        rowA.add(  "1" ); 
        rowA.add("2"); 
        rowA.add(  "3" ); 
        rowA.add(  "4" ); 
        Vector rowB = new Vector(); 
        rowB.add(  "5" ); 
        rowB.add(  "6" ); 
        rowB.add(  "7" ); 
        rowB.add(  "8" ); 
        data.add( rowA );          
        data.add( rowB ); 
		return data;
	}
	
	private Vector getTableColumn(){
		Vector columnName = new Vector();	
		columnName.add("modi");
		columnName.add("component");
		columnName.add("x");
		return columnName;
	}
```


----------



## abollm (9. Dez 2004)

jean20 hat gesagt.:
			
		

> [Ich habe versuch ein Button ganz normal in den Vector einzufügen, aber dann ...



Was ist denn jetzt noch dein Begehren? Willst du "nur" erreichen, dass du einen Button in einer Zelle hast oder sollen z.B. Buttons in mehreren Zellen erscheinen?

Für die zweite Variante könnte ich dir ein wenig Code posten, aber ich weiß nicht ob dir das wirklich nützt, da mir scheint dass deine Ausgangsfrage ja eine ganz andere war.


----------

