SWT Combobox

Drizztd

Grünschnabel
Hallo,

wie kann ich in einer swt combobox objecte wie in einer Jcombobox hinzufügen.

Folgendes Problem der Wert den der Benutzer sieht ist ja meist nicht das was weiterverarbeitet wird,
wie mach ich das mit swt. Ich würd mit Jcombobox meine eigene klasse schreiben mit ner
eigenen toString methode.
In swt kann ich doch aber nur Strings hinzufügen und keine objecte (in der combo)

jemand eine idee

danke
 
Hallo!

Die einfachste Möglichkeit wäre beispielsweise JFace als SWT Aufsatz zu verwenden:
Java:
/**
 * 
 */
package de.tutorials.jface;

import org.eclipse.jface.viewers.ComboViewer;
import org.eclipse.jface.window.ApplicationWindow;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Shell;

/**
 * @author Thomas.Darimont
 * 
 */
public class Main extends ApplicationWindow {

    public Main(Shell parentShell) {
        super(parentShell);
    }

    protected void configureShell(Shell shell) {
        shell.setText(getClass().getName());
        shell.setLayout(new FillLayout());

    }

    protected Control createContents(Composite parent) {
        Combo combo = new Combo(parent, SWT.NONE);
        ComboViewer comboViewer = new ComboViewer(combo);
        comboViewer.add(createDummyPersons());
        return parent;
    }

    /**
     * @param args
     */
    public static void main(String[] args) {
        Main main = new Main(new Shell());
        main.setBlockOnOpen(true);
        main.open();
    }

    static Person[] createDummyPersons() {
        Person[] persons = new Person[10];
        for (int i = 0; i < persons.length; i++) {
            persons[i] = new Person("Thomas" + i, 22 + i);
        }
        return persons;
    }

    static class Person {
        String name;

        int age;

        public Person(String name, int age) {
            super();
            this.name = name;
            this.age = age;
        }

        public String toString() {
            return this.name + " " + this.age;
        }
    }

}

Gruß Tom
 

Anhänge

  • 25708attachment.jpg
    25708attachment.jpg
    8,4 KB · Aufrufe: 242
Danke genau das was ich gesucht habe.

Gibt es ne übersicht über die Funktionen und klassen von jface wie bei eclipse?


Wie komm ich dann aber wieder an das object mit combo.getText bekomm ich ja
dann nur das string object.
 
Zuletzt bearbeitet:
Zurück