Der Visual Editor generiert Java-Code und führt eine Syntaxanalyse durch, während Sie die visuelle Klasse entwickeln. Der Visual Editor verwendet eine besondere Darstellung für den durch ihn erzeugten Java-Code und verfügt über Regeln für die Syntaxanalyse für den Java-Code.
Der Visual Editor für Java generiert einen gültigen Java-Code, der ordnungsgemäß kompiliert und ausgeführt werden kann. Weiterhin verwendet der Visual Editor, wenn er einen vorhandenen Java-Code syntaktisch analysiert, Regeln, um festzustellen, welche Elemente des Codes die Darstellung in der Entwurfsansicht versuchen sollen.
Regeln für die Syntaxanalyse von Code, der in der Entwurfsansicht angezeigt wird
Der Visual Editor für Java versucht, den Code in der Entwurfsansicht darzustellen, wenn der Code
eines der folgenden Kriterien erfüllt:
Es gibt andere Voraussetzungen, die der Visual Editor prüft, bevor eine Komponente in der grafischen Entwurfsansicht dargestellt wird:
- Felder müssen innerhalb einer Methode get erstellt werden, oder die Bean muss durch eine Initialisierungsmethode initialisiert werden, die Pattern Styles-Tabelle der Benutzervorgabenseite des Visual Editors enthalten ist.
- Es darf kein Kompilierungsfehler in der Zeile sein.
- Eine Klasse muss gültig sein, um geladen und realisiert zu werden.
- Die meisten Bereichsinitialisierungsausdrücke können nicht ausgewertet werden.
- Komplexe Argument für eine Methode können verstanden werden, sofern die Entitäten, aus denen sich das Argument zusammensetzt, modelliert sind. Ein Ausdruck, der eine Zeichenfolgenverkettung unter Verwendung des + Operanden beinhaltet, wird beispielsweise in den meisten Fällen korrekt ausgewertet.
Die meisten Ausdrücke werden erfolgreich syntaktisch analysiert, aber nicht alle Ausdrücke können korrekt ausgewertet werden. In diesem Fall wird ein Warnzeichen für die Java-Beans in den Ansichten angezeigt und der Grund für den Fehler wird in der Statuszeile angezeigt, wenn die Bean in der Entwurfsansicht oder der Java-Beans-Ansicht ausgewählt wird.
Ein Warnungssymbol wird auch in der Grafik angezeigt:

Ein durch den Visual Editor generierter Code
- Der Visual Editor generiert Standardkonstruktoren, die die Methode initialize() aufrufen, durch die die Eigenschaftswerte für die Klasse gesetzt werden.
- Für Applets heißt der Code für das Setzen der anfänglichen Eigenschaftswerte init().
Dieser wird nicht durch den Konstruktor aufgerufen, da er durch den Applet-Browser selbst ausgeführt wird.
- Optional: Sie können festlegen, dass der Visual Editor try{}catch()-Blöcke für Komponenten generiert. Dadurch wird ständig jede während der Initialisierung ausgelöste Ausnahme entdeckt und das Risiko, dass Ausnahmen unterdrückt werden, könnte sich erhöhen.
Daher ist es besser, die Ausnahme statt dessen durchgehen zu lassen. Sie können diese Option auf dem Reiter 'Codegenerierung' in den Benutzervorgaben des Visual Editors () auswählen.
Der folgende Code zeigt ein JPanel, das mit dem Block try{}catch() initialisiert wurde:
private JPanel getJPanel1() {
if (jPanel1 == null) {
try {
jPanel1 = new JPanel();
}
catch (java.lang.Throwable e) {
// TODO: Something
}
}
return jPanel1;
}
Der folgende Code zeigt ein JPanel ohne den Codeblock 'try{}catch()':private JPanel getJPanel() {
if (jPanel == null) {
jPanel = new JPanel();
}
return jPanel;
}
- Optional: Sie können auch angeben, dass der Visual Editor einen Kommentar hinzufügt, der jeden von ihm generierten Ausdruck markiert. Dies könnte hilfreich sein, um handgeschriebenen Code von generiertem Code zu unterscheiden. Die folgende Codezeile ist ein Beispiel dafür, wie der Kommentar aussieht:
this.add(getJPanel(), null); // Generiert
Um diese Option zu aktivieren, markieren Sie das Markierungsfeld Kommentar für neue Ausdrücke generieren auf dem Reiter 'Codegenerierung' in den Benutzervorgaben des Visual Editors.
- Für Swing/AWT ist dies, obschon der Visual Editor Methoden wie z.B. getPanel() generiert, die eine einzelne JavaBean erstellen und zurückgeben, keine Bedingung. Eine Methode kann mehr als eine JavaBean erstellen und der Rückgabewert der Methode ist nicht wichtig für die Erkennung, ob es sich bei dem Feld um eine JavaBean handelt. Für die Felder anOKButton und ivjTableModel, die als Java-Beans aufgenommen werden müssen, gilt, dass sie innerhalb einer Methode get in der Klasse erstellt werden müssen.
- Für SWT generiert der Visual Editor private void createComposite()-Methoden für jede Klasse, die Composite erweitert, und alle Kinder-Beans werden innerhalb derselben Methode initialisiert.
- Wenn die editierte Klasse eine JavaBean erweitert, wird die editierte Instanz durch eine spezielle JavaBean mit der Bezeichnung 'this'-Teil dargestellt. Dieser 'this'-Teil kann nicht aus der Entwurfsansicht oder der Java-Beans-Ansicht gelöscht werden und die Initialisierungsmethode für die Eigenschaften erfolgt in der Methode initialize().
Ein 'this'-Teil wird nur dann in der Entwurfsansicht und der Java-Beans-Ansicht angezeigt, wenn es Eigenschaften gibt, die in der Eigenschaftsansicht festgelegt werden können. Die festgelegten Methoden für die Eigenschaften werden in der Methode initialize() generiert,
oder, wenn die Klasse java.awt.Applet erweitert, wird die Methode init() verwendet.
- Wenn die bearbeitete Klasse 'org.eclipse.ui.IWorkbenchPart' implementiert, wird der generierte Code für die untergeordneten Steuerelemente zur Methode 'createPartControl(Composite parent)' hinzugefügt.