Indholdsfortegnelse:
- I JavaFX er hele verden et stadium
- I JavaFX er layoutledere knuder
- JavaFX har forbedret hændelseshåndtering
- JavaFX understøtter egenskaber
- JavaFX kan skinnes med CSS
- JavaFX har mere ensartede kontroller
- JavaFX har specielle effekter
- Animation er nemmere i JavaFX
- JavaFX understøtter moderne berøringsenheder
- JavaFX har ikke ækvivalent med JOptionPane
Video: Samsung Galaxy Note 10+ Plus Ekran Değişimi ?? #samsunggalaxynote10plus 2024
Hvis du er en erfaren Java-programmør, har du uden tvivl arbejdet med Swing for at oprette brugergrænseflader. Oracle har ikke helt forladt Swing - det er ikke forældet, og Swing applikationer fortsætter med at fungere. Men der arbejdes ikke længere for at forbedre Swing, og Oracle har gjort det klart, at JavaFX er fremtiden.
Her er 10 grundlæggende forskelle mellem JavaFX og Swing.
I JavaFX er hele verden et stadium
I Swing hedder den klasse, der indeholder dine brugergrænsefladekomponenter en ramme og defineres af JFrame-klassen. En ramme er i det væsentlige et tomt vindue, hvor du kan tilføje et panel, , som fungerer som en beholder til dine brugergrænsefladeelementer. Et panel er defineret af JPanel-klassen.
En Swing-ansøgning er faktisk en klasse, der udvider JFrame-klassen. For at vise brugergrænsefladekomponenter, tilføjer du komponenter til en JPanel og tilføjer derefter panelet til rammen.
JavaFX bruger metaforen til et teater til at modellere de øverste containere af et program. Et stadium (defineret af sceneklassen) repræsenterer den højeste niveau beholder - typisk et vindue, men på nogle operativsystemer kan scenen repræsentere hele skærmens overflade. De enkelte kontroller og andre komponenter, der udgør brugergrænsefladen, er indeholdt i en scene (defineret af sceneklassen). En applikation kan have mere end en scene, men kun et af scenerne kan vises på scenen til enhver tid.
En scene indeholder en scenediagram, , som er det vigtigste koncept i JavaFX. Scenediagrammet er en samling af alle de elementer, der udgør en brugergrænseflade - grupper, layouter, kontroller og former. Disse objekter hedder noder og er alle afledt af Node-klassen. Node-klassen har mange nyttige funktioner og funktioner, der automatisk gøres tilgængelige for ethvert objekt, du kan tilføje til din brugergrænseflade. For eksempel definerer Node-klassen en setRotate-metode, som giver dig mulighed for at rotere enhver node i scenediagrammet.
I JavaFX er layoutledere knuder
I Swing er et layout forbundet med en JPanel. Den øverste JPanel giver det grundlæggende layout til rammen. Hvis du vil neste yderligere layouter i layoutet på øverste niveau, skal du oprette yderligere JPanels, angive deres tilknyttede layouter og derefter føje dem til layoutet på højere niveau.
I JavaFX er layouter underklasser af Node-klassen ligesom kontroller og former. Layouts indeholder en samling af noder, og enhver node indeholdt i et layout kan være nogen form for node: en kontrol, en form eller et andet layout.Denne ordning er meget mindre besværlig end Swings sammenslutning af layouter med paneler.
JavaFX har forbedret hændelseshåndtering
Både JavaFX og Swing bruger hændelseshåndtering til at reagere på brugerindgangsbegivenheder. Men du vil opdage, at begivenheder i JavaFX er bedre gennemtænkte og mere konsekvente end deres ækvivalenter i Swing. Men den største årsagshændelseshåndtering er forbedret i JavaFX, fordi den er afhængig af egenskaber.
JavaFX understøtter egenskaber
JavaFX understøtter begreberne egenskaber og bruger egenskaber i vid udstrækning i sine klasser. Enkelt sagt er en ejendom en variabel, hvis værdi kan overholdes. Du kan registrere en lytter med enhver ejendom, så du kan skrive kode, der udløses automatisk, når ejendommen ændres. Derudover kan du binde egenskaber til hinanden, hvilket betyder at hvis en egenskabsværdi ændres, ændres den anden egenskabsværdi automatisk med den.
Da næsten alle egenskaber ved brugergrænsefladeelementer styres gennem egenskaber, giver JavaFX hændelseshåndtering, der ikke er kendt i Swing. For eksempel i JavaFX kan du vedhæfte en hændelseslytter til farven på en form. Hvis formen ændrer farve, udføres din event lytterkode. Du har muligvis ikke brug for evnen, men du kan bruge den, hvis du har brug for det.
JavaFX kan skinnes med CSS
En af de bedste funktioner i JavaFX er, at du kan styre formatering med Cascading Style Sheets (CSS). Næsten alle aspekter af udseendet af din brugergrænseflade kan indstilles ved en stilregel, og du kan let lade brugeren vælge, hvilken af flere tilgængelige stilark der skal anvendes på scenen. Således kan du ændre hele udseendet af din ansøgning med en enkelt metodeopkald.
JavaFX har mere ensartede kontroller
Generelt finder du, at JavaFX-kontrolhierarkiet er mere komplet end Swing's. Begge har alle de grundlæggende kontroller - knapper, afkrydsningsfelter, kombinationsbokse og lignende. Men JavaFX har flere interessante kontroller, som Swing ikke har, såsom den sammenfoldelige TitledPane-kontrol og Accordion-kontrollen, der arrangerer flere TitledPane-kontroller i en stak. Og det faktum, at alle disse kontroller er skinnable af CSS giver dem en stor fordel i forhold til Swing.
JavaFX har specielle effekter
Javafx. scene. effektpakke indeholder et antal klasser, der nemt kan anvende specielle effekter på en node i scenediagrammet. Disse klasser giver dig mulighed for nemt at anvende skygger, refleksioner, uklarheder og andre interessante visuelle effekter, som kan ændre udseendet af din brugergrænseflade.
Animation er nemmere i JavaFX
Animation er mulig i Swing, men Swing giver ikke nogen direkte support til det. For at animere en Swing-komponent skal du oprette dine egne timere og opbygge din egen logik for at udføre animationen.
I modsætning hertil har JavaFX indbygget understøttelse af sofistikerede animationer, som kan anvendes til enhver node i scenediagrammet. Du kan bruge en af flere indbyggede overgangsklasser til at udføre almindelige animationer som fades, rotationer eller bevægelsesstier.Eller du kan bruge KeyFrame og Timeline klasserne til nemt at oprette brugerdefinerede animationer.
JavaFX understøtter moderne berøringsenheder
Swing mangler støtte til moderne berøringsenheder. I modsætning hertil har JavaFX indbygget understøttelse af almindelige berøringsbevægelser som rulle, swiping, rotering og zoomning. Håndtering af disse begivenheder i JavaFX er lige så nem som at håndtere enhver anden form for begivenhed: Du skal blot installere en begivenhedslytter på berøringshændelsen og derefter skrive kode, der svarer korrekt.
JavaFX har ikke ækvivalent med JOptionPane
Det ville ikke være rimeligt at fuldstændigt udfylde denne liste over ti forskelle med punkter, der klart favoriserer JavaFX. Her er en mindre irritation af JavaFX: Den har ingen indbygget ækvivalent med Swings JOptionpane-klasse, hvilket er meget praktisk til visning af korte advarsler eller enkelt indlæsning fra brugeren. I JavaFX skal du lave din egen ækvivalent til denne nyttige klasse.