I den visuella redigeraren genereras och tolkas Java-kod när du skaparen visuell klass. I den visuella redigeraren används ett visst format för Java-kod som genereras och det har särskilda regler för tolkning av Java-kod.
I den visuella redigeraren för Java genereras giltig Java-kod som kan
kompileras och köras. Dessutom, när befintlig Java-kod tolkas i den visuella redigeraren, används regler till att bestämma vilka element i koden som ska visualiseras
i designvyn.
Regler för tolkning av kod för visning i designvyn
I den visuella redigeraren för Java görs försök att visualisera kod i designvyn
om koden uppfyller
något av följande villkor:
I den visuella redigeraren görs en kontroll av att vissa andra krav uppfylls innan en komponent visualiseras i den grafiska designvyn:
- Fält måste instantieras i en get-metod eller så
måste bönan initieras av en initieringsmetod som visas på
fliken Mönsterformat på inställningssidan i den visuella redigeraren.
- Det får inte finnas något kompileringsfel på raden.
- En klass måste vara giltig för att det ska gå att läsa in och instantiera den.
- De flesta uttryck för vektorinitiering kan inte utvärderas.
- Komplexa argument för en metod kan tolkas så länge de delar
som argumentet består av är modelldefinierade. Till exempel utvärderas ett uttryck med
strängsammanslagning med hjälp av operanden + på rätt sätt i de flesta fall.
De flesta uttryck kan tolkas men inte alla uttryck kan utvärderas rätt. I det här fallet visas envarningsikon vid Java-bönan i vyerna och orsaken till att utvärderingen misslyckades visas på
statusraden när en böna väljs i designvyn eller Java-bönvyn.
En varningsikon visas även på arbetsytan:

Kod som genererats av den visuella redigeraren
- I den visuella redigeraren genereras standardkonstruktorer som anropar metoden initialize()
som anger värdena för egenskaperna för klassen.
- För appletprogram kallas den kod som används till att ange de första egenskapsvärdena init().
Den anropas inte av konstruktorn eftersom den inte körs av själva appletwebbläsaren.
- Valfritt: Du kan ange att den visuella redigeraren genererar try{}catch()-block för komponenter. Då fångas alla undantag som inträffar under initieringen kontinuerligt och risken för att undantag undertrycks kan öka.
Det är därför bättre att låta undantaget passera. Du kan välja
det här alternativet på fliken Kodgenerering i inställningarna för den visuella redigeraren
().
I följande kod visas en JPanel initierad med try{}catch()-blocket:
private JPanel getJPanel1() {
if (jPanel1 == null) {
try {
jPanel1 = new JPanel();
}
catch (java.lang.Throwable e) {
// TODO: Något
}
}
return jPanel1;
}
I följande kod visas en JPanel utan try{}catch()-kodblocket:private JPanel getJPanel() {
if (jPanel == null) {
jPanel = new JPanel();
}
return jPanel;
}
- Valfritt: Du kan även ange att en kommentar
läggs till för varje uttryck som genereras i den visuella redigeraren. Det kan vara användbart för att särskilja
handskriven kod från genererad kod. Följande rad är ett exempel
på hur kommentaren kan se ut:
this.add(getJPanel(), null); // Genererad
Om du vill
aktivera det här alternativet markerar du kryssrutan Generera en kommentar för nya uttryck på fliken Kodgenerering i inställningarna för den visuella redigeraren.
- För Swing/AWT är det här inget krav trots att den visuella redigeraren genererar metoder, till exempel getPanel(), som instantierar och returnerar en enda Java-böna.
En metod kan instantiera fler än en Java-böna och returvärdet för
metoden är inte avgörande för att identifiera om fältet är en Java-böna. För att fältenanOKButton och ivjTableModel ska
ingå som Java-bönor måste de instantieras i en get-metod
i klassen.
- För SWT genererar den visuella redigeraren private void createComposite()-metoder för varje klassutvidgande sammansättning och eventuella underordnade bönor initierasi samma metod.
- Om den redigerade klassen utökar en Java-böna representeras den förekomst som redigeras
av en special-Java-böna som kallas en this-del. Det går inte att ta bort this-delen
från designvyn eller Java-bönvyn och initieringsmetoden
för egenskaperna för den körs i initialize()-metoden.
En this-del visas endast i designvyn och Java-bönvyn om det
finns egenskaper som är tillgängliga för egenskapsvyn. set-metoderna
för egenskaperna genereras i initialize()-metoden
eller, om klassen utökar java.awt.Applet, så används init()-metoden.
- Om den redigerade klassen implementerar org.eclipse.ui.IWorkbenchPart läggs den genererade
koden för de underordnade kontrollerna till i createPartControl(Composite parent)-metoden.