Hem Personliga finanser 10 Skillnader mellan JavaFX och Swing-dummies

10 Skillnader mellan JavaFX och Swing-dummies

Innehållsförteckning:

Video: Python Tutorial for Beginners 5 - Python print() and input() Function 2024

Video: Python Tutorial for Beginners 5 - Python print() and input() Function 2024
Anonim

Om du är en erfaren Java-programmerare har du utan tvekan arbetat med Swing för att skapa användargränssnitt. Oracle har inte helt övergivit Swing - det är inte avvecklat, och Swing-applikationer fortsätter att fungera. Men inget arbete görs längre för att förbättra Swing, och Oracle har gjort klart att JavaFX är framtiden.

Här är tio grundläggande skillnader mellan JavaFX och Swing.

I JavaFX är hela världen ett steg

I Swing kallas klassen som innehåller dina användargränssnittskomponenter en ram och definieras av JFrame-klassen. En ram är i huvudsak ett tomt fönster där du kan lägga till en panel, som fungerar som en behållare för dina användargränssnitt. En panel definieras av JPanel-klassen.

En Swing-applikation är faktiskt en klass som utökar JFrame-klassen. För att visa användargränssnittskomponenter lägger du till komponenter i en JPanel och lägger sedan till panelen i ramen.

JavaFX använder metaforen för en teater för att modellera behållarna på toppnivå i en applikation. Ett stadium (definierat av Stage-klassen) representerar behållaren på högsta nivå - vanligen ett fönster, men i vissa operativsystem kan scenen representera hela bildytan. De enskilda kontrollerna och andra komponenter som utgör användargränssnittet finns i en scen (definierad av scenklassen). En applikation kan ha mer än en scen, men bara en av scenerna kan visas på scenen när som helst.

En scen innehåller en scengraf, som är det viktigaste konceptet i JavaFX. Scengrafen är en samling av alla element som utgör ett användargränssnitt - grupper, layouter, kontroller och former. Dessa objekt heter noder och är alla härledda från nodklassen. Node-klassen har många användbara funktioner och funktioner som automatiskt görs tillgängliga för alla objekt du kan lägga till i ditt användargränssnitt. Nodklassen definierar till exempel en setRotate-metod som låter dig rotera vilken nod som helst i scengrafen.

I JavaFX är layouthanterare noder

I Swing är en layout associerad med en JPanel. Den högsta JPanel ger den grundläggande layouten för ramen. Om du vill bygga upp fler layouter i den överordnade layouten måste du skapa ytterligare JPanel, ange deras associerade layouter och sedan lägga till dem i layouten på högre nivå.

I JavaFX är layouter underklasser i nodklassen, precis som kontroller och former. Layout innehåller en samling noder, och varje nod som finns i en layout kan vara vilken som helst nod: en kontroll, en form eller en annan layout.Det här systemet är mycket mindre besvärligt än Swings associering av layouter med paneler.

JavaFX har förbättrat händelsehantering

Både JavaFX och Swing använder händelsehantering för att svara på användarinmatningshändelser. Men du kommer att upptäcka att händelser i JavaFX är bättre genomtänkt och mer konsekvent än deras ekvivalenter i Swing. Men den största orsaken till händelsehanteringen är förbättrad i JavaFX på grund av dess beroende av egenskaper.

JavaFX stöder egenskaper

JavaFX stöder koncepten egenskaper och använder egenskaper omfattande i sina klasser. Enkelt uttryckt är en egenskap en variabel vars värde kan observeras. Du kan registrera en lyssnare med någon egendom, så att du kan skriva kod som utlöses automatiskt när egenskapen ändras. Dessutom kan du binda egenskaper till varandra, vilket innebär att om ett fastighetsvärde ändras, ändras det andra egenskapsvärdet automatiskt med det.

Eftersom nästan alla egenskaper hos användargränssnittselement hanteras genom egenskaper, tillhandahåller JavaFX händelsehantering som inte är synlig i Swing. I JavaFX kan du till exempel bifoga en händelseloggare till en färgfärg. Om formen ändrar färg, exekveras din händelseloggskod. Du kanske inte har möjlighet att använda möjligheten, men du kan använda den om du behöver.

JavaFX kan skinnas med CSS

En av de bästa funktionerna i JavaFX är att du kan styra formatering med Cascading Style Sheets (CSS). Nästan alla aspekter av utseendet på ditt användargränssnitt kan ställas in med en stilregel och du kan enkelt låta användaren välja vilken av flera tillgängliga stilark som ska tillämpas på scenen. Således kan du ändra hela utseendet på din ansökan med ett enda metodsamtal.

JavaFX har mer konsekventa kontroller

Generellt ser du att JavaFX-kontrollhierarkin är mer komplett än Swing. Båda har alla grundläggande kontroller - knappar, kryssrutor, kombinationsrutor och liknande. Men JavaFX har flera intressanta kontroller som Swing inte har, till exempel den hopfällbara TitledPane-kontrollen och Accordion-kontrollen som arrangerar flera TitledPane-kontroller i en stapel. Och det faktum att alla dessa kontroller är skinnbara av CSS ger dem en stor fördel jämfört med Swing.

JavaFX har specialeffekter

Javafx. scen. effektpaketet innehåller ett antal klasser som enkelt kan applicera specialeffekter till vilken nod som helst i scengrafen. Dessa klasser låter dig enkelt applicera skuggor, reflektioner, oskärpa och andra intressanta visuella effekter som kan förändra utseendet på ditt användargränssnitt.

Animering är lättare i JavaFX

Animering är möjlig i Swing, men Swing ger inget direkt stöd för det. För att animera en Swing-komponent måste du skapa egna timer och bygga din egen logik för att utföra animeringen.

I motsats till detta har JavaFX inbyggt stöd för sofistikerade animeringar som kan appliceras på vilken nod som helst i scengrafen. Du kan använda en av flera inbyggda övergångsklasser för att utföra vanliga animeringar, som fades, rotationer eller rörelsebana.Eller du kan använda KeyFrame och Timeline klasserna för att enkelt skapa egna animeringar.

JavaFX stöder moderna touch-enheter

Swing saknar stöd för moderna touch-enheter. I motsats till detta har JavaFX inbyggt stöd för vanliga beröringsbehållanden som att bläddra, svepa, rotera och zooma. Hantering av dessa händelser i JavaFX är lika enkelt som hantering av någon annan typ av händelse: Du installerar helt enkelt en händelseloggare vid beröringshändelsen och skriver sedan kod som svarar på lämpligt sätt.

JavaFX har ingen motsvarighet till JOptionPane

Det skulle inte vara rättvist att helt fylla i listan med tio skillnader med punkter som tydligt gynnar JavaFX. Här är en liten irritation av JavaFX: Den har ingen inbyggd motsvarighet till Swings JOptionpane-klass, vilket är väldigt praktisk för att visa kortvariga meddelanden eller få enkel inmatning från användaren. I JavaFX måste du skapa din egen motsvarighet till den här användbara klassen.

10 Skillnader mellan JavaFX och Swing-dummies

Redaktörens val

Organisera e-postmarknadsföring innehåll för att matcha dina mål - dummies

Organisera e-postmarknadsföring innehåll för att matcha dina mål - dummies

När du utvecklar e-postmarknadsföring innehåll, överväga hur din publik kommer att uppleva dina avsikter. E-postmeddelanden ger större mening åt dina framtidsutsikter och kunder när innehållet du skapar och levererar är knutet samman under kända teman. När din tid är begränsad kan du bli frestad att skapa e-postinnehåll som passar ditt schema bättre ...

Nya formulärinmatningstyper i HTML5 - dummies

Nya formulärinmatningstyper i HTML5 - dummies

HTML-formulär är centrerade kring det ödmjuka men flexibla inmatningselementet . HTML5 lägger till ett antal väldigt användbara former av inmatning som hjälper till att göra HTML till ett mer modernt användargränssnitt. Även om stöd för dessa taggar inte är universellt är det säkert att börja använda dem nu. Varje webbläsare (även IE6) som inte förstår den avancerade ...

Utföra visuell designtest på en ny webbplats - dummies

Utföra visuell designtest på en ny webbplats - dummies

Det visuella designteamet för en webbplats kan skapa några olika "look and feel" -alternativ och testa dem med användare. Den här designen kallas perfekt för att passera en hemsida och en inre eller undersida av din webbplats, men de är inte 100 procent korrekta när det gäller ...

Redaktörens val

Objektiv till dina digitala SLR-dummies

Objektiv till dina digitala SLR-dummies

Zoomlinser är inte den enda typen av linser som är tillgängliga för din dSLR . Du borde veta hur de skiljer sig från de andra alternativen. Här är några av alternativen till zoomlinser i allmänhet och vanliga zoomlinser i synnerhet. Prime-objektiv En primärlins har en fast brännvidd. En lins med fast fokusering ...

Hur man skapar bra belysning för din digitala fotografi - dummies

Hur man skapar bra belysning för din digitala fotografi - dummies

Ja, du kan återskapa bra belysning om du vet vad du gör. Och ingenting kan förstöra ett foto snabbare än dålig belysning. Du kan göra många förbättringar till ett utmanande ämne helt enkelt genom att använda bra belysningsteknik. Din farbrors skalliga huvud, en tonåring som är mindre än perfekt, en hård upplyst strandplats, en droppe ...

ÖKa bildförstoring med telekonverterare - dummies

ÖKa bildförstoring med telekonverterare - dummies

En telekonverter är en sekundärlins som du placerar mellan din lins och kamerokroppen (precis som förlängningsröret). En telekonverter tar emot bilden som skapats av din lins och ger en förstorad version av den till kamerans digitala sensor. Detta kan vara ett användbart verktyg i makrofotografering men kan också vara ...

Redaktörens val

Undvik hack på sårbara trådlösa arbetsstationer - dummies

Undvik hack på sårbara trådlösa arbetsstationer - dummies

Trådlösa arbetsstationer har massor av säkerhetsproblem och kan vara inriktade på hackar - från svaga lösenord till opatchade säkerhetshål till lagring av WEP- och WPA-krypteringsnycklar lokalt. De flesta av de kända trådlösa klientens sårbarheter har blivit patchade av sina respektive leverantörer, men du vet aldrig om alla dina trådlösa system är ...

Grundläggande Mac Network Settings - dummies

Grundläggande Mac Network Settings - dummies

De flesta nätverksinställningarna på en Mac är automatiska. Om du föredrar kan du titta på och ändra standardnätverksinställningarna genom att följa dessa steg: