SWT Tabelle + Spinner

  • Themenstarter Themenstarter Tobias Köhler
  • Beginndatum Beginndatum
T

Tobias Köhler

Hallo

Innerhalb einer Tabelle wird ein Warenkorb angezeigt. Nun möchte ich das ganze etwas komfortabler gestalten und in der Spalte Anzahl bei jedem Artikel die Zelle mit einem Spinner belegen. Hier soll man nur die zahlen von 1-1000 eingeben können. Wie schaffe ich es jetzt, dieses Widget in den einzelnen Zellen anzeigen zu lassen und natürlich bearbeiten. Reicht es, wenn ich dem Spinner die Table zuweise?

Etwa so?
Code:
Spinner[] spinner_anzahl = new Spinner[artikel_im_warenkorb.getSize()];
for(int i=0; i<artikel_im_warenkorb.length; i++)
{
   spinner_anzahl[i]= new Spinner(table, SWT.NONE);
}
 
Sollen die Spinner immer zu sehen sein oder nur wenn man eine Zelle editieren will?

Beispiele dazu solltest du auf jeden Fall in den SWT Snippets finden.
 
Also sie sollten nur zu sehn sein, wenn man sich auch in der zeile befindet.

Ok, hab ich das soweit richtig verstanden, dass man erstmal(so wie ich schon geschrieben hatte) den snipper deklariert und als parent die table setzt und DANN auf jeden snipper einen tableEditor definiert?
 
Ok, ich habe es geschafft, sie anzeigen zu lassen aber jetzt gibts noch ein Problem:

eigentlich soll in dem Spinner ja die Anzahl des Artikels angegeben werden. Aber bei mir wird immer nur die Anzahl vom "ersten" Hinzufügen des Artikels angezeigt.

Code:
int height = 18;					
int anzahl = bestellung_detail_liste.getBestellungDetail(b).getAnzahl();

//---- "Image" in Zeile einfügen um Änderung der Höhe zu erzwingen----//
Image fake = new Image(table.getDisplay(), 1, height);
item.setImage(0, fake);

TableEditor editor = new TableEditor(table);					
Spinner spinner_anzahl = new Spinner(table, SWT.NONE);				    
spinner_anzahl.setSelection(anzahl);
System.out.println(anzahl);				    
editor.grabHorizontal = true;	    
editor.setEditor(spinner_anzahl, item, 0);
item.setText(new String[]{"", Bestellung_detail_liste.getBestellungDetail(b).getBezeichnung(), bestellung_detail_liste.getBestellungDetail(b).getBeschreibung(), bestellung_preis_string + " €"});

in der Variable anzahl befindet sich auch wirklich immer die Anzahl des Artikels im Warenkorb. System.out.println sei dank ist das gewiss;)
Aber während anzahl immer weiter steigt(1,2,3..1000) bleibt spinner_anzahl.setSelection(anzahl) konstant bei 1 :(

Ich hoffe ihr habt mich verstanden^^ und könnt mir helfen
 
Zurück