geloescht_JesterDay Geschrieben 30. Juli 2008 Teilen Geschrieben 30. Juli 2008 Hallo, ich hab meine erste Oberfläche mit SWT gemaht, naja sagen wir angefangen. Ist ja auch gar nicht so schwer, aber wie kann ich zur Laufzeit weitere Komponenten zur Oberfläche hinzufügen? Ein ganz simples Beispiel zeigt mein Problem: public static void main(String[] args) { Display display = new Display(); Shell shell = new Shell(display); shell.setLayout(new RowLayout()); new Label(shell, SWT.PUSH).setText("bla"); shell.open(); new Label(shell, SWT.PUSH).setText("bla"); } Das erste Label wird angezeigt, das zweite nicht. Ich will bei meinem Programm aber Inhalte zur Laufzeit erst erzeugen bzw anzeigen. Da gibt es doch bestimmt einen Trick wie man das hinbekommt, oder? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
AniHH Geschrieben 30. Juli 2008 Teilen Geschrieben 30. Juli 2008 Ich bin kein Guru, daher kann ich keine Garantie auf meine Aussage geben, aber ich meine, wenn du die Shell erstmal geöffnet hast, können keine Widgets mehr hinzugefügt werden. Du hast aber die Möglichkeit, die Sichtbarkeit deiner Komponenten über Methoden wie label.setEnabled (wenns nur ausgegraut werden soll) oder setVisible zu beeinflussen, vielleicht hilft dir das ja weiter? Gruß! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_JesterDay Geschrieben 31. Juli 2008 Autor Teilen Geschrieben 31. Juli 2008 Ich bin kein Guru, daher kann ich keine Garantie auf meine Aussage geben, aber ich meine, wenn du die Shell erstmal geöffnet hast, können keine Widgets mehr hinzugefügt werden. Ja, so kam mir das auch vor. Aber das wäre ja sehr komisch. Bei keiner anderen Sprache ist das so und ich sehe erstmal hier auch keinen Grund warum man einem angezeigten Fenster nichts mehr hinzufügen kann. Das hilft mir nur sehr bedingt. Eigentlich sollten die Komponenten nach den Nutzereinstellungen angezeigt werden bzw neue hinzugefügt werden und entfernt, zur Laufzeit. Also keine einfachen Labels oder ähnliches, schon etwas komplexer dann Aber bin jetzt eh am überlegen das nich doch anders zu gestallten. Dennoch finde ich dieses Verhalten komisch. Das ist ja jetzt kein so absonderlicher Wunsch... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_JesterDay Geschrieben 28. August 2008 Autor Teilen Geschrieben 28. August 2008 Hab eine Lösung gefunden, falls es jemand interessiert: display = new Display(); shell = new Shell(display); new Label(shell, SWT.PUSH).setText("bla"); shell.open(); new Label(shell, SWT.PUSH).setText("blubb"); shell.layout(); Also ein shell.layout() muss aufgerufen werden, damit die Änderungen angezeigt werden. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.