Det visuelle redigeringsprogrammet genererer og analyserer Java-kode når du designer den visuelle klassen. Det
visuelle redigeringsprogrammet bruker en
bestemt stil for den genererte Java-koden, og den har regler for analysering av Java-kode.
Det visuelle redigeringsprogrammet for Java genererer gyldig Java-kode som kan kompileres og kjøres
på riktig måte. Når det visuelle redigeringsprogrammet analyserer eksisterende Java-kode, bruker den i tillegg regler for å bestemme hvilke elementer av koden som
den skal prøve å visualisere i Design-visning.
Regler for analysering av kode som skal vises i Design-visningen
Det visuelle redigeringsprogrammet for Java prøver å visualisere kode i Design-visning
hvis koden oppfyller
et hvilket som helst av følgende kriterier:
Det finnes andre krav som det visuelle redigeringsprogrammet ser etter før en komponent
visualiseres i den grafiske
Design-visningen:
- Det må være opprettet forekomster av felt i en get-metode, eller bønnen må
være initialisert av en initialiseringsmetode som står oppført på flippen Mønsterstiler på
Preferanser-siden i det visuelle redigeringsprogrammet.
- Det kan ikke være kompileringsfeil på linjen.
- En klasse som skal lastes inn, og som det skal opprettes en forekomst av, må være gyldig.
- De fleste matriseinitialiseringsuttrykk kan ikke evalueres.
- Sammensatte argumenter for en metode kan forstås så sant entitetene som utgjør argumentet, er modellert. For
eksempel vil et uttrykk som omfatter strengsammenkjeding med operanden +, som regel bli evaluert på riktig måte.
De fleste uttrykk blir analysert på riktig måte, men ikke alle uttrykk kan evalueres på riktig måte. I dette
tilfellet blir det vist en advarsel for Java-bønnen i visningene, og grunnen til feilen blir vist på statuslinjen
når bønnen blir valgt i Design-visningen eller visningen Java-bønner.
Et advarselsikon blir også vist på lerretet.

Kode generert av det visuelle redigeringsprogrammet
- Det visuelle redigeringsprogrammet genererer standardkonstruktører som sender
kall til metoden
initialize(), som oppgir verdiene for klassens egenskaper.
- For appletter kalles koden for å definere de første egenskapsverdiene init().
Denne blir ikke kalt av konstruktøren, ettersom den blir utført av selve applettleseren.
- Valgfritt: Du kan oppgi at det visuelle redigeringsprogrammet skal generere
try{}catch()-blokker for komponenter. Dette vil kontinuerlig fange opp alle unntak som
kastes under initialisering, og risikoen for at unntak blir skjult, kan øke.
Det er derfor bedre å heller la
unntaket passere gjennom. Du kan velge dette alternativet på flippen Kodegenerering i preferansene for det
visuelle redigeringsprogrammet ().
Følgende kode viser en JPanel som er initialisert med blokken try{}catch():
private JPanel getJPanel1() {
if (jPanel1 == null) {
try {
jPanel1 = new JPanel();
}
catch (java.lang.Throwable e) {
// TODO: Something
}
}
return jPanel1;
}
Følgende kode viser en JPanel uten kodeblokken try{}catch():private JPanel getJPanel() {
if (jPanel == null) {
jPanel = new JPanel();
}
return jPanel;
}
- Valgfritt: Du kan også oppgi at det visuelle redigeringsprogrammet skal legge til
en kommentar som merker hvert
uttrykk som blir generert. Dette kan være nyttig for å skille mellom håndskrevet kode og generert kode. Følgende
kodelinje er et eksempel på hvordan kommentaren ser ut:
this.add(getJPanel(), null); // Generated
Du slår på dette alternativet ved å velge avmerkingsboksen Generer en kommentar for nye
uttrykk på flippen Kodegenerering i preferansene for det visuelle redigeringsprogrammet.
- Selv om det visuelle redigeringsprogrammet genererer metoder som
getPanel(),
som oppretter forekomster av og returnerer en enkelt Java-bønne, er ikke dette et krav for Swing/AWT. En metode kan opprette en
forekomst av flere Java-bønner, og returverdien til metoden er ikke viktig for å se om feltet er en
Java-bønne. For at feltene anOKButton og ivjTableModel skal
inkluderes som Java-bønner, må det opprettes forekomster av dem i en get-metode i
klassen.
- For SWT genererer det visuelle redigeringsprogrammet private void
createComposite()-metoder for alle klasser som utvider Sammensatt (Composite), og alle underordnede bønner
blir initialisert med samme metode.
- Hvis den redigerte klassen utvider en Java-bønne, blir forekomsten som redigeres, representert med en
spesiell Java-bønne som kalles en 'this'-del. Delen 'this' kan ikke slettes fra Design-visningen eller visningen
Java-bønner, og initialiseringsmetoden for egenskapene blir utført i
initialize()-metoden.
Delen 'this' blir bare vist i Design-visningen og i visningen Java-bønner hvis det er noen tilgjengelige egenskaper
som kan defineres i Egenskaper-visningen. Set-metodene for egenskapene blir generert i metoden
initialize(). Hvis klassen utvider java.awt.Applet, blir
metoden init() brukt.
- Hvis den redigerte klassen implementerer org.eclipse.ui.IWorkbenchPart, blir den genererte koden for de
underordnede kontrollene lagt til i metoden createPartControl(Composite parent).