Bild in einer Table - Was ist Falsch ?

mcbass

Mitglied
Hi

Ich habe folgendes Problem, ich habe eine table wo ich unter anderem ein Bild in jeder Zeile in der ersten Spalte habe. Das klappt auch wunderbar, nur hat mir jetzt jemand gesagt, dass das so nicht geht bzw. das ich das so nicht machen sollte. Was diese Person mir aber nicht gesagt hat, ist warum und wie man es denn anders macht. Jetzt würde ich gerne mal wissen ob hier jemand was datz sagen kann.

Code:
  		for (int i = 0; i < 2; i++) {
 			TableItem tableItem = new TableItem(lp.getTable(), SWT.NONE);
  			tableItem.setText("","i","Test");
  			tableItem.setImage(0, new Image(display, "app.gif"));
  		 }


Danke,

mcbass
 
Hallo!

Hast du dir dazu schonmal die Sourcen hierzu angeschaut?
http://www.eclipse.org/articles/Article-Table-viewer/table_viewer.html

Den Nachteil den ich an deiner Lösung sehe ist u.A. das du für jede Zeile ein neues Image Objekt instanziierst. Besser wäre es doch alle Bilder, die du verwenden willst, in einer Art ImageRegistry zu cachen und dann jeder Zeile immer nur noch eine Referenz auf das jeweilige passende Bild zuzuweisen... dann sparst du auf diese Weise Speicher und der Aufbau der Tabelle geht etwas fixer voran.

Ich glaube mich zu erinnern, dass die Jungs(oder auch Mädels das in dem obigen Eclipse Artikel so gemacht haben.

Gruß Tom
 
hi aus deinem Code ist nicht ersichtlich, ob es sich um ein normales Java Projekt handelt oder ein Plug-in ist.

Wenn es ein Plug-in ist würde ich dir Raten es mit einer (org.eclipse.jface.resource.ImageRegistry )ImageRegistry zu realisieren, hab dazu ein kleines Tutorial geschrieben:
http://www.webmanie.de/cms/index.php?option=com_content&task=view&id=22&Itemid=9

Wenn nicht solltest du wissen das du es schon so realisieren kannst wie in deinem Code geschrieben, das einzigste was du beachten musst ist das SWT Komponenten nicht vom GC aufgeräumt werden. Um diese musst du dich selber kümmern und aufräumen über die dispose() Funktion.

gruss webmanie
 
Zurück