# SWT Größe einer Tabellenzeile, -spalte ändern



## Itzmir (14. Nov 2008)

Hallo allerseits,

habe nichts passendes über SuFu gefunden.

Also ich habe eine SWT Tabelle. In diese werden Text und Bilder eingelesen. 
Wenn ich jetzt ein Bild einlese, dann nehmen alle Zellen der Tabelle die Maase des Bildes an. Auch die Zeilen und Spalten, die von dem Bild nicht betroffen sind. 

Wie kann ich die Größe der Tabellenspalte und - zeile manuel einstellen?!?

Gruß 
Itzmir


----------



## 2plus3 (16. Nov 2008)

gibt es bei der SWT tablle ein TableModel. oder ähnliches. ?


----------



## Itzmir (17. Nov 2008)

2plus3, danke für die Antwort.

Das mit "TableModel" habe ich mir auch gedacht. Konnte aber unter dieser Namensgebung nichts finden.  

Weiß noch Rat?

Gruß
Itzmir


----------



## Gast2 (17. Nov 2008)

TableColumn#setWidht() und setHeight....


----------



## Itzmir (17. Nov 2008)

joa danke,

.setWidht(int) gibt es, aber kein .setHeight().

Wie kann man die dem TableItem die Höhe verändern? 
Kann man eine vertikalen Tabellenkopf für die Zeilen/TreeItems einfügen (so wie zB in Excel)?

Gruß
Itzmir


----------



## Gast2 (17. Nov 2008)

ah um die Zeilen größe zu verändern brauchst du glaub ein TableEditor...


----------



## Oli (17. Nov 2008)

Wie wärs damit:

table.setRowHeight(22);


----------



## Gast2 (17. Nov 2008)

joa wäre schön  ist aber SWING...


----------



## Itzmir (18. Nov 2008)

Hallo allerseits,

habe ein wenig recherchiert: 
In SWT gibt es zZ keine Funktion mit der man die Höhe einer Tabellenzelle \ -zeile beliebig bestimmen kann.

Es gibt jedoch einen Trick um die Höhe zu vergößern, verkleinern geht nicht (gerade das brauche ich)


```
1  	Display display = new Display();
2 	Shell shell = new Shell(display);
3 	shell.setBounds(10,10,400,200);
4 	Table table = new Table(shell, SWT.NONE);
5 	table.setBounds(10,10,350,150);
6 	table.setHeaderVisible(true);
7 	table.setLinesVisible(true);
8 	final TableColumn column0 = new TableColumn(table, SWT.NONE);
9 	column0.setWidth(100);
10 	final TableColumn column1 = new TableColumn(table, SWT.NONE);
11 	column1.setWidth(100);
12 	column0.addListener(SWT.Selection, new Listener() {
13 	   public void handleEvent(Event event) {
14 	      column0.pack();
15 	   }
16 	});
17 	column1.addListener(SWT.Selection, new Listener() {
18 	   public void handleEvent(Event event) {
19 	      column1.pack();
20 	   }
21 	});
22 	for (int i = 0; i < 5; i++) {
23 	   TableItem item = new TableItem(table, SWT.NONE);
24 	   item.setText(0, "item " + i + " col 0");
25 	   item.setText(1, "item " + i + " col 1");
26 	}
27 	[b]table.addListener(SWT.MeasureItem, new Listener() {
28 	   public void handleEvent(Event event) {
29 	      event.width *= 2;
30 	   }
31 	});[/b]
32 	shell.open();
33 	while (!shell.isDisposed()) {
34 	   if (!display.readAndDispatch()) display.sleep();
35 	}
36 	display.dispose();
```
Quelle : http://www.eclipse.org/articles/article.php?file=Article-CustomDrawingTableAndTreeItems/index.html

event.width bzw. event.height werden jedoch auf alle Zellen der Tabelle angewendet.
Man kan damit die aktuelle Größen NUR ERHÖHEN nicht VERRINGERN.
Ein solches Event kann man mit 
	
	
	
	





```
table.redraw();
```
 erzwingen.

Nochmals Danke für die Antworten.

Gruß
Itzmir


----------

