Es gibt verschiedene Darstellungen oder Wege, um einen Java-Code zu schreiben. Der Visual Editor verwendet eine besondere Darstellung für den durch ihn erzeugten 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 syntaktisch analysierbare Codes
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 get-Methode erstellt werden, oder die Bean muss durch eine Initialisierungsmethode initialisiert werden, die Pattern Styles-Tabelle der Benutzervorgabenseite des Visual Editors enthalten ist. Beachten Sie in der folgenden Abbildung, dass die Methoden jbInit, initComponents und initialize als Initialisierungsmethoden angegeben wurden:
- 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.
- Ausdrücke, die arithmetische oder Zeichenfolgenverkettung unter Verwendung des + Operanden beinhalten, werden nicht 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 handgeschriebene Code von generierten Codes 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 get-Methode in der Klasse erstellt werden müssen.
- Für SWT generiert der Visual Editor private void createFoo()-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.