Hjem Personlig finansiering 10 Forskjeller mellom JavaFX og Swing-dummies

10 Forskjeller mellom JavaFX og Swing-dummies

Innholdsfortegnelse:

Video: How to link one JFrame to another JFrame in Java Swing 2024

Video: How to link one JFrame to another JFrame in Java Swing 2024
Anonim

Hvis du er en erfaren Java-programmerer, har du utvilsomt jobbet med Swing for å skape brukergrensesnitt. Oracle har ikke fullstendig forlatt Swing - det er ikke utdatert, og Swing-applikasjoner fortsetter å fungere. Men det gjøres ikke noe arbeid for å forbedre Swing, og Oracle har gjort det klart at JavaFX er fremtiden.

Her er ti grunnleggende forskjeller mellom JavaFX og Swing.

I JavaFX er hele verden en scene

I Swing er klassen som inneholder brukergrensesnittkomponentene en ramme og er definert av JFrame-klassen. En ramme er egentlig et tomt vindu som du kan legge til et panel, som fungerer som en beholder for brukergrensesnittelementene dine. Et panel er definert av JPanel-klassen.

En Swing-applikasjon er faktisk en klasse som utvider JFrame-klassen. For å vise brukergrensesnittkomponenter legger du til komponenter til en JPanel og legger deretter panelet til rammen.

JavaFX bruker metaforen til et teater for å modellere toppnivåbeholdere av et program. Et stadium (definert av sceneklassen) representerer høyeste nivåbeholderen - vanligvis et vindu, men på enkelte operativsystemer kan scenen representere hele displayflaten. De enkelte kontrollene og andre komponenter som utgjør brukergrensesnittet, finnes i en scene (definert av sceneklassen). En applikasjon kan ha mer enn en scene, men bare ett av scenene kan vises på scenen til enhver tid.

En scene inneholder en scenediagram, som er det viktigste konseptet i JavaFX. Scenediagrammet er en samling av alle elementene som utgjør et brukergrensesnitt - grupper, layouter, kontroller og former. Disse objektene kalles noder og er alle avledet fra Node-klassen. Node-klassen har mange nyttige funksjoner og funksjoner som automatisk gjøres tilgjengelige for ethvert objekt du kan legge til i brukergrensesnittet. For eksempel definerer Node-klassen en setRotate-metode som lar deg rotere noen noder i scenediagrammet.

I JavaFX er layoutledere noder

I Swing er en layout tilknyttet en JPanel. Toppnivå JPanel gir grunnleggende layout for rammen. Hvis du vil legge inn flere oppsett i toppnivålayouten, må du opprette flere JPaneler, angi de tilhørende layoutene, og deretter legge dem til layoutet på høyere nivå.

I JavaFX er layouter underklasser av Node-klassen, akkurat som kontroller og former. Layouts inneholder en samling av noder, og noen noder som finnes i en layout kan være noen form for node: en kontroll, en form eller et annet layout.Denne ordningen er mye mindre tung enn Swings tilknytning av layouter med paneler.

JavaFX har forbedret hendelseshåndtering

Både JavaFX og Swing bruker hendelseshåndtering for å svare på brukerinngangshendelser. Du vil imidlertid oppdage at hendelser i JavaFX er bedre gjennomtenkt og mer konsistent enn deres ekvivalenter i Swing. Men den største årsaken til hendelseshåndtering er forbedret i JavaFX, fordi den er avhengig av egenskaper.

JavaFX støtter egenskaper

JavaFX støtter konseptene egenskaper og bruker egenskaper omfattende i sine klasser. Enkelt sagt, en egenskap er en variabel hvis verdi kan observeres. Du kan registrere en lytter med en hvilken som helst eiendom, slik at du kan skrive kode som utløses automatisk når eiendommen endres. I tillegg kan du binde egenskaper til hverandre, noe som betyr at hvis en eiendomsverdi endres, endres den andre eiendomsverdien automatisk med den.

Fordi nesten alle egenskaper av brukergrensesnittelementer styres gjennom egenskaper, gir JavaFX hendelseshåndtering som ikke er kjent i Swing. For eksempel, i JavaFX kan du legge ved en hendelselytter til fargen på en form. Hvis formen endrer farge, blir hendelseslytterkoden din utført. Du kan ikke ha bruk for evnen, men du kan bruke den hvis du trenger det.

JavaFX er skinnbar med CSS

En av de beste funksjonene i JavaFX er at du kan styre formatering med Cascading Style Sheets (CSS). Omtrent alle aspekter ved utseendet på brukergrensesnittet kan settes av en stilregel, og du kan enkelt tillate brukeren å velge hvilken av flere tilgjengelige stilark som skal brukes til scenen. Dermed kan du endre hele utseendet på søknaden din med en enkelt metodeanrop.

JavaFX har mer konsistente kontroller

Generelt finner du at JavaFX-kontrollhierarkiet er mer komplett enn Swings. Begge har alle de grunnleggende kontrollene - knapper, boksene, kombinationsbokser og lignende. Men JavaFX har flere interessante kontroller som Swing ikke har, for eksempel den sammenleggbare TitledPane-kontrollen og Accordion-kontrollen som arrangerer flere TitledPane-kontroller i en stabel. Og det faktum at alle disse kontrollene er skinnable av CSS gir dem en stor fordel i forhold til Swing.

JavaFX har spesialeffekter

Javafx. scene. effektpakke inneholder en rekke klasser som enkelt kan bruke spesielle effekter til en hvilken som helst node i scenediagrammet. Disse klassene lar deg enkelt bruke skygger, refleksjoner, uskarphet og andre interessante visuelle effekter som kan forandre utseendet til brukergrensesnittet.

Animasjon er enklere i JavaFX

Animasjon er mulig i Swing, men Swing gir ikke direkte støtte til det. For å animere en Swing-komponent må du sette opp dine egne timere og bygge din egen logikk for å utføre animasjonen.

I motsetning til dette har JavaFX innebygd støtte for sofistikerte animasjoner som kan brukes på noen node i scenediagrammet. Du kan bruke en av flere innebygde overgangsklasser til å utføre vanlige animasjoner som fades, rotasjoner eller bevegelsesbaner.Du kan også bruke KeyFrame og Timeline-klassene til å enkelt konfigurere egendefinerte animasjoner.

JavaFX støtter moderne berøringsenheter

Swing mangler støtte for moderne berøringsenheter. I motsetning til dette har JavaFX innebygd støtte for vanlige berøringsbevegelser som å rulle, sveipe, rotere og zoome. Å håndtere disse hendelsene i JavaFX er like enkelt som å håndtere andre typer arrangement: Du installerer bare en hendelseslytter på berøringshendelsen og skriver deretter kode som svarer på riktig måte.

JavaFX har ikke tilsvarende JOptionPane

Det ville ikke være rettferdig å fullstendig fylle denne listen med ti forskjeller med punkter som klart favoriserer JavaFX. Her er en liten irritasjon av JavaFX: Den har ingen innebygd ekvivalent med Swing's JOptionpane-klassen, noe som er veldig nyttig for visning av kortvarslingsmeldinger eller enkel innføring fra brukeren. I JavaFX må du lage din egen ekvivalent til denne nyttige klassen.

10 Forskjeller mellom JavaFX og Swing-dummies

Redaktørens valg

Ved hjelp av farger og gradienter med HTML5 Canvas Tag - dummies

Ved hjelp av farger og gradienter med HTML5 Canvas Tag - dummies

Nesten alle operasjoner i HTML5 lerret funksjonen implementerer en fylle eller stroke stil. For å få mest mulig ut av lerretet, må du forstå hvordan de fungerer. De tre primære typene stiler du kan bruke på fyll og slag er farger, gradienter og mønstre. Bruke farger med HTML5 lerret-merket For å spesifisere en ...

Ved hjelp av HTML for å kode websidene dine - dummies

Ved hjelp av HTML for å kode websidene dine - dummies

HTML lar deg legge til beskrivende koder på web sidetekst, for å endre utseendet, eller opprette lister, tabeller, koblinger og så videre. HTML er designet for å være noe som mennesker kan lese og at maskiner kan behandle, en form for felles grunnlag for menneskelig kommunikasjon. Anta at du vil legge til fet skrift til et ord ...

Redaktørens valg

Slik skriver du Excel-formler og -funksjoner direkte i regnearkceller - dummier

Slik skriver du Excel-formler og -funksjoner direkte i regnearkceller - dummier

Kanskje den enkleste oppføringen Metoden er å skrive en formel direkte i en celle i et Excel-regneark. Skriv bare formler som ikke inneholder noen funksjoner, og trykk Enter-tasten for å fullføre oppføringen. Prøv dette enkle eksempelet: Klikk på en celle der formelen skal skrives inn. Skriv inn denne enkle matematikkbaserte formelen: = 6 + (9/5) ...

Hvordan du skriver inn lister og seriell data ved hjelp av AutoFill i Excel 2016 - dummies

Hvordan du skriver inn lister og seriell data ved hjelp av AutoFill i Excel 2016 - dummies

I Excel 2016, kan data som faller inn i kategorien "seriell" - månedens navn, ukedag og sammenhengende tall og datoer, for eksempel - skrives inn raskt med kommandoen AutoFill. Tro det eller ei, Excel gjenkjenner visse typer seriell data og går inn i den for deg som en del av AutoFill-funksjonen. ...

Hvordan du skriver inn en funksjon i Excel med funksjonskommandoen - dummies

Hvordan du skriver inn en funksjon i Excel med funksjonskommandoen - dummies

Hvis du er ikke kjent med hvordan en funksjon fungerer i Excel - kanskje du ikke engang er sikker på hvilken funksjon du vil bruke - du må bruke Formulas-fanens Innsett Funksjon-kommando for å finne funksjonen og deretter identifisere argumentene riktig. Hvis du vil bruke kommandoen Funksjonsveiviser på denne måten, følg ...

Redaktørens valg

ÅNdelig gjenoppretting: Den samaritanske kvinne ved brønndummene

ÅNdelig gjenoppretting: Den samaritanske kvinne ved brønndummene

Den samaritanske kvinnen ved brønnen er ingen engel. Blandet opp med en feil folkemengde, denne stakkars kvinnen fra Samaria har et godt rykte. Hun hadde vært gift fem ganger og bodde i synd med en mann som ikke var hennes ektemann. Gjennom hennes historie kommer leksjonen at folk ikke burde leve av kjønnslig glede. ...

Gjenoppleve den bibelske julehistorien - dummies

Gjenoppleve den bibelske julehistorien - dummies

I stedet for bare å vises på jorden en dag eller "stråle ned" bruk Trek-talk), sier Jesus at han har kommet inn i denne verden på de mest ortodokse måtene: fødsel. Jesu utseende på jorden er kjent som inkarnasjonen, eller hva Johannes-evangeliet kaller Jesus "blir kjøtt. "Interessant nok, skjønner John ikke hendelsene ...