JavaFX: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica |
Funzionalità collegamenti suggeriti: 3 collegamenti inseriti. |
||
(94 versioni intermedie di 51 utenti non mostrate) | |||
Riga 1:
{{Software
|Nome = JavaFX
|Logo = JavaFX_logo.jpg
|Screenshot2 =
|Didascalia =
|Sviluppatore = OpenJFX
|UltimaVersione = 23.0.1
|DataUltimaVersione = ottobre [[2024]]
|UltimaVersioneBeta =
|DataUltimaVersioneBeta =
|SistemaOperativo = multipiattaforma
|Genere = [[Framework]]
|Licenza = [[GNU_General_Public_License|GPL v2 con Classpath Exception]]
|SoftwareLibero = sì
|Lingua =
|Repository = https://github.com/openjfx/openjfx.github.io
}}
'''JavaFX''' è una famiglia di [[applicazione (informatica)|software applicativi]], basati sulla [[
== Rilevanza commerciale ==
JavaFX è uno dei principali attori nel mercato delle [[rich Internet application]], in gara con [[Adobe Flex]] e [[Microsoft Silverlight]], anche se attualmente il suo utilizzo è marginale rispetto ai concorrenti<ref>[http://www.indeed.com/jobtrends?q=javafx%2C+%22silverlight%22%2C+%22adobe+flash%22&l= Andamento delle offerte di lavoro per JavaFX, Flash e Silverlight su indeed.com]</ref>.
Sun sostiene che il 90% dei PC abbia [[Piattaforma Java|Java]] installato e che sui cellulari Java
== Descrizione ==
Oltre ad una crescente libreria di funzionalità grafiche, include un vero e proprio [[linguaggio di programmazione]] indipendente da Java, chiamato "JavaFX script", un [[linguaggio di scripting]] dichiarativo e [[tipizzazione statica|staticamente tipizzato]] fortemente orientato alla programmazione grafica; questo rende la programmazione di [[rich Internet application]], e di applicazioni grafiche in genere, particolarmente agevolata.
In aggiunta al pacchetto JavaFX SDK, che include [[compilatore]], utilità per l'esecuzione, e tutta la libreria JavaFX necessaria per lo sviluppo, sono stati distribuiti alcuni strumenti che rendono lo sviluppo in JavaFX molto più agile:
* Un componente aggiuntivo per [[NetBeans]] che integra tutte le fasi di sviluppo JavaFX in un unico [[Ambiente di sviluppo integrato|IDE]]
* JavaFX Production Suite: Utilità varie per facilitare il passaggio da programmi di grafica ([[Adobe Photoshop]] e [[Adobe Illustrator]]) e da formati come [[Scalable Vector Graphics|SVG]], a codice JavaFX.
A partire da Java 7, la libreria di JavaFX è distribuita con il [[Java Runtime Environment]].
* Multi piattaforma: soprattutto grazie all'ultima versione 1.2, JavaFX rende abbastanza trasparente il passaggio da un dispositivo all'altro: con alcune accortezze (e limitazioni) si può realmente eseguire lo stesso codice JavaFX sia come applicazione desktop, sia come [[Applet]] all'interno di un browser, sia come applicazione per cellulare.
* Trascina e installa: una funzione innovativa, ereditata dalle ultime versioni di Java, permette di creare un Applet JavaFX da eseguire all'interno di una [[pagina web]], che può essere letteralmente trascinata sulla scrivania di lavoro del PC; così è possibile lanciare l'applicazione web anche al di fuori del browser, direttamente dal Desktop.
=== Il linguaggio ===
JavaFX introduce un linguaggio di scripting dichiarativo ad oggetti, con molti riferimenti alla [[programmazione funzionale]], estremamente pratico per lo sviluppo di applicazioni grafiche, con una sintassi simile a [[JavaScript]] e, per certi aspetti, ad [[ActionScript]], che permette di gestire in modo semplice ed efficace le interazioni tra i controlli grafici, e rende del tutto banale la gestione delle animazioni più comuni (dissolvenze, ingrandimenti, spostamenti ecc.).
JavaFX elimina quindi tutta la ridondanza tipica di Java, e rappresenta un naturale passaggio per i programmatori tradizionali dello storico linguaggio di Sun.
JavaFX permette anche di interagire senza alcuno sforzo con classi Java preesistenti.
Lo spazio grafico di lavoro di JavaFX è un oggetto <code>Stage</code>, radice di ogni applicazione JavaFX, che può intercambiare oggetti <code>Scene</code>, dei contenitori (oggetti che estendono la classe <code>Container</code>) di generici componenti grafici (<code>Node</code>). A tutti gli effetti un oggetto <code>Scene</code> è un albero di nodi, in cui ogni nodo può essere sia un contenitore
Funzionalità degna di nota è il
<
var A : Number = bind
</syntaxhighlight>
ogni qualvolta <code>ESPR</code> cambia valore, anche il valore di A (ovunque sia utilizzato) varia: questo introduce grossi problemi di prestazioni, soprattutto nel caso di abuso di binding, ma semplifica estremamente la comune interazione tra componenti grafiche
== Esempio: Hello World ==
Questo è un esempio di piccolo programma JavaFX che mostra in una finestra 250x80 un messaggio di "Hello World!".
<
import javafx.stage.Stage;
import javafx.scene.Scene;
Line 77 ⟶ 74:
]
}
}
</syntaxhighlight>
Il nome di una classe, ad esempio <code>Font</code>, seguito da parentesi graffe, come avviene nella notazione [[JSON]], serve per creare un oggetto: all'interno delle parentesi si possono specificare gli attributi dell'oggetto; per es. <code>size: 16</code>, indica la dimensione dell'etichetta di testo e <code>x: 10</code> indica la posizione orizzontale del testo rispetto alla finestra.
Per capire la corrispondenza, in Java avremmo scritto:
<
Font mioFont = new Font();
mioFont.setSize(16);
Text mioText = new Text();
mioText.setFont(mioFont);
mioText.setX(10);
mioText.setY(30);
mioText.setContent("Hello World!");
</syntaxhighlight>
Le parentesi quadre denotano invece l'inizio di una "Sequenza" (<code>Sequence</code>), una specie di lista di oggetti alla quale si possono aggiungere/rimuove elementi. Ad esempio:
<syntaxhighlight lang="text">
var miaSequenza : Number = [10, 20, 40];
insert 30 into miaSequenza;
remove 40 from miaSequenza;
</syntaxhighlight>
crea una sequenza di 3 numeri, e successivamente
== Date di
Il linguaggio di scripting di JavaFX era originariamente un progetto di Chris Oliver, chiamato F3, ed è stato annunciato per la prima volta da Sun Microsystem alla conferenza [[JavaOne]] del
Soltanto un anno dopo, nel
A partire dal
* La prima versione ufficiale, JavaFX 1.0, è stata
* JavaFX 1.1, annunciato nel
* JavaFX 1.2 è stato reso pubblico nel
** Supporto per [[Linux]] e Solaris
** Controlli e Layout grafico integrati
** [[CSS]] come strumento per definire l'aspetto grafico dei controlli
** Grafici e data charts di vario tipo
* JavaFX 1.3 è stato distribuito nell'Aprile 2010 con l'introduzione di diverse novità tra cui:
** Nuovi controlli UI e ampliato supporto a CSS
** Miglioramenti nelle prestazioni, grazie anche all'introduzione di un nuovo motore grafico denominato Prism
** Editor visuale chiamato Composer, disponibile in NetBeans 6.9
** Supporto per le applicazioni su TV
** Un più ampio spettro di emulatori per cellulari e TV
Con il nuovo modello di rilascio del progetto JDK, le nuove versioni delle funzionalità sono rilasciate con una cadenza di circa 6 mesi<ref>{{Cita web|url=http://openjdk.java.net/projects/jdk-updates/|titolo=OpenJDK: JDK Updates Project|sito=openjdk.java.net|accesso=2021-02-10}}</ref>. Ogni versione riceve a sua volta aggiornamenti costanti. Ad esempio la versione 13u ha ricevuto 7 aggiornamenti tra il 2019 e il 2021<ref>{{Cita web|url=https://wiki.openjdk.java.net/display/JDKUpdates/JDK+13u|titolo=JDK 13u - JDK 13u - OpenJDK Wiki|sito=wiki.openjdk.java.net|accesso=2021-02-10}}</ref>.
{| class="wikitable"
|+Cronologia versioni<ref>{{Cita web|url=https://gluonhq.com/products/javafx/|titolo=JavaFX Roadmap|sito=|accesso=5 novembre 2024}}</ref>
|'''Versione'''
|'''Data rilascio'''
|'''Ultima versione'''
|'''JDK'''
|'''Release notes'''
|-
|11
|settembre 2018
|11.0.20 (Luglio 2023)
|11
|https://gluonhq.com/products/javafx/openjfx-11-release-notes/
|-
|12
|marzo 2019
|12.0.2 (Luglio2019)
|11
|https://gluonhq.com/products/javafx/openjfx-12-release-notes/
|-
|13
|settembre 2019
|13.0.2 (Gennaio 2020)
|11
|https://gluonhq.com/products/javafx/openjfx-13-release-notes/
|-
|14
|marzo 2020
|14.0.2.1 (Luglio 2020)
|11
|https://gluonhq.com/products/javafx/openjfx-14-release-notes/
|-
|15
|settembre 2020
|15.0.1 (Ottobre 2020)
|11
|https://gluonhq.com/products/javafx/openjfx-15-release-notes/
|-
|16
|marzo 2021
|16 (Marzo 2021)
|11
|https://gluonhq.com/products/javafx/openjfx-16-release-notes/
|-
|17
|settembre 2021
|17.0.13 (Ottobre 2024)
|11
|https://gluonhq.com/products/javafx/openjfx-17-release-notes/
|-
|18
|marzo 2022
|18.0.2 (Luglio 2022)
|11
|https://gluonhq.com/products/javafx/openjfx-18-release-notes/
|-
|19
|settembre 2022
|19.0.2.1 (Gennaio 2023)
|11
|https://gluonhq.com/products/javafx/openjfx-19-release-notes/
|-
|20
|marzo 2023
|20.0.2 (Luglio 2023)
|17
|https://gluonhq.com/products/javafx/openjfx-20-release-notes/
|-
|21
|settembre 2023
|21.0.5 (Ottobre2024)
|17
|https://gluonhq.com/products/javafx/openjfx-21-release-notes/
|-
|22
|marzo 2024
|22.0.2 (Luglio 2024)
|17
|https://gluonhq.com/products/javafx/openjfx-22-release-notes/
|-
|23
|settembre 2024
|23.0.1 (Ottobre 2024)
|21
|https://gluonhq.com/products/javafx/openjfx-23-release-notes/
|-
|24
|marzo 2025
|accesso anticipato
|21
|
|}
<references group="versioni" />
== Licenze ==
Attualmente, JavaFX è un progetto open source sotto il nome di ''OpenJFX''<ref>{{Cita web|url=https://openjdk.org/projects/openjfx/|titolo=OpenJDK: OpenJFX Project|sito=openjdk.org|accesso=2024-11-05}}</ref>. A partire dalla versione 11, JavaFX è stato reso disponibile come libreria separata dal JDK, distribuita sotto la [[GNU General Public License|GNU General Public License versione 2 con Classpath Exception]]. Questa licenza consente agli sviluppatori di utilizzare, modificare e distribuire JavaFX liberamente, inclusa la possibilità di includere le librerie di runtime nelle loro applicazioni.
Con il passaggio a OpenJFX, il [[codice sorgente]] di JavaFX è stato reso disponibile pubblicamente, eliminando la confusione precedente riguardo alla sua licenza. Ora gli sviluppatori possono contribuire attivamente al progetto e beneficiare delle nuove funzionalità e degli aggiornamenti rilasciati dalla comunità.
== Note ==
<references/>
== Altri progetti ==
{{interprogetto}}
== Collegamenti esterni ==
* {{Collegamenti esterni}}
*
*
* {{cita web|http://www.sun.com/software/javafx/|Sun.com - JavaFX}}
*
* {{cita web |1=https://openjfx.dev.java.net/ |2=Sito web di OpenJFX |accesso=27 dicembre 2008 |urlarchivio=https://web.archive.org/web/20070610234324/https://openjfx.dev.java.net/ |dataarchivio=10 giugno 2007 |urlmorto=sì }}
*
* {{cita web|http://java.sun.com/javafx/1/tutorials/ui/|Guida alla programmazione di interfacce con JavaFX}}
* {{cita web|http://java.sun.com/javafx/1.3/docs/api/|La documentazione ufficiale delle API di JavaFX}}
* {{cita web |1=http://blogs.sun.com/javafx/entry/javafx_1_3_released_delivers |2=Annuncio ''release'' JavaFX 1.3 |accesso=8 luglio 2010 |urlarchivio=https://web.archive.org/web/20110430161432/http://blogs.sun.com/javafx/entry/javafx_1_3_released_delivers |dataarchivio=30 aprile 2011 |urlmorto=sì }}
{{Portale|informatica}}
[[Categoria:Applicazioni Java]]
|