2009-03-09 5 views
3

erstelle mir eine Combo-Box Steuerung in org.eclipse.swt.widgets.Table Der Code-Snippet ist unterDynamische Combo-Box Liste in Java SWT Tabelle

... 
TableEditor editor = new TableEditor (table_LLSimDataFileInfo); 
CCombo combo = new CCombo (table_LLSimDataFileInfo, SWT.NONE); 
combo.setText("CCombo"); 
combo.add("item 1"); 
combo.add("item 2"); 
editor.grabHorizontal = true; 
editor.setEditor(combo, items[i], 0); 
... 

Wie kann ich dynamisch den Combo- ändern Box-Liste für eine ausgewählte Zeile in der Tabelle (für zB item1, item2 etc. geändert zu item4, item5, item7 usw. nur für Zeile 5) durch Auslösen eines Ereignisses. Das Ereignis in meinem Fall ist die Auswahl in einem anderen Kombinationsfeld, dessen Liste sich nicht ändert.

Antwort

0

Die Dokumente TableEditor zeigen ein einfaches Beispiel mit einem Auswahllistener, der die aktuell ausgewählte Zeile identifiziert.

Sie müssen nur dieses Beispiel anpassen und dynamisch füllen Sie die Combo entsprechend der ausgewählten Zeile.

2

sollten Sie setzen ein SelectionListener auf Ihrem anderen CCOmbo, um ein Update auf Ihrem zweiten CCOmbo zu nennen.

Diese Klasse WavAudioSettingComposite ist ein gutes Beispiel.

Etwas wie:

public class ValueChanged extends SelectionAdapter { 

    public void widgetSelected(SelectionEvent e) { 
     if(e.getSource()==myFirstCCombo){ 
      // call update on your second CCombo 
     } 
    } 
} 

public void updateSecondCCombo(int[] newValues){ 
    int oldbitrate=getFramerate(); 
    mySecondCCombo.removeAll(); 

    for (int i = 0; i < newValues.length; i++) { 
     mySecondCCombo.add(""+newValues[i]); 
    } 
} 
+0

Great! Bitte. – VonC

+0

Wenn es half, Amarnath, sollten Sie die Antwort akzeptieren. Oder zumindest abstimmen, wenn du abwarten willst, ob eine andere, bessere Idee auftaucht. Ich wähle es, weil es eine gute Antwort ist, und um die Frage aus dem Abschnitt "unbeantwortete Fragen" zu bekommen. – Sandman

+0

@ Sandman: Danke. Ich schaue mir diesen "unbeantworteten" Teil nie an, also war mir das nicht bewusst. Ich bin es jedoch gewohnt, bei der Antwort für "neue Nutzer" keine Stimme zu erhalten oder den Status "Akzeptieren" zu akzeptieren;) Der Abstimmungs- oder "Annahme" -Prozess ist für den Gelegenheitsnutzer möglicherweise nicht so offensichtlich. – VonC