Ein GUI-Editor für Java, der Objekte in RUNTIME manipulieren kann

8

Ich suche nach einem Java-GUI-Editor oder einer Java-Bibliothek mit der folgenden exotischen Eigenschaft: Die GUI kann zur Laufzeit manipuliert werden. Das heißt, ein laufender Rahmen kann spezielle Steuerelemente enthalten, z. B. die rechte Maustaste, mit denen Benutzer Schaltflächen und andere Widgets hinzufügen können.

Alternativ kann ich einen GUI-Editor verwenden, der mit einem laufenden Java-Programm interagieren kann. Das Programm sagt "Bitte fügen Sie eine Schaltfläche hinzu" und der Editor zeigt dem Benutzer eine Palette mit Schaltflächen. Der Benutzer fügt eine Schaltfläche hinzu und drückt sie, und das Programm erhält ein Ereignis "Taste gedrückt".

Gibt es da so etwas, das man von der Stange verwenden kann, ohne es von Grund auf neu zu schreiben?

    
Little Bobby Tables 03.05.2011, 10:37
quelle

1 Antwort

1

Jede kompatible JavaBean-Bibliothek würde die Entwurfszeit -Semantik unterstützen . Kurz gesagt, eine Bohne (Komponente) soll in einem Container laufen. In der Entwurfszeit ist dieser Container die Canvas des Editors und zur Laufzeit der Stamm der (gui) Container-Hierarchie. Es wird erwartet, dass der Autor der Bean dieses Zustandsflag abfragt und angemessen z. Ändern Sie die Grenzen in der Entwurfszeit, um "Ziehpunkte" einzubeziehen, die für die Größenänderung usw. gezogen werden können. Und natürlich wird erwartet, dass die Elternkomponente (die als Konstruktionsleinwand angesehen wird) Designänderungen z. Ändern Sie das Layout, um die skalierte Komponente zu bearbeiten.

Das heißt, ich glaube nicht, dass eines der aktuellen Angebote Ihnen erlaubt, in Ihrer App einfach zwischen Designzeit und Laufzeit zu wechseln.

Effektiv müssen Sie (a) eine Bibliothek auswählen und (b) die erforderliche Maschinerie zur Unterstützung der Designzeit mit Ihrer laufenden App bündeln und (c) eine Designoberfläche (Canvas) als Laufzeit-GUI maskieren. Natürlich müssen Sie nur die Design-Operationen unterstützen, an denen Sie interessiert sind, aber unter dem Strich schreiben Sie einen GUI-Editor.

Was ist der Vorteil dieses Ansatzes? Nun, Sie verwenden "Komponenten" und müssen meist den Container hacken.

Wenn ich so etwas tun müsste, würde ich mir netbeans ernsthaft anschauen, behalte diese STO Frage im Hinterkopf , und nimm es von dort.

    
alphazero 04.05.2011, 11:52
quelle