PDA

View Full Version : [JAVA] usare java.awt.FileDialog in progetto swing


afsdfdlecosdfsfdcco
28-08-2007, 11:09
Sto realizzando un applicazione con le swing. Questa applicazione sara' usata solo su mac :stordita:
Per navigare tra i file uso javax.swing.JFileChooser ma la finestra e' troppo diversa da quella tipica del mac. Cosi' ho provato FileDialog delle awt... Che dire, e' perfetto!

Ora mi domando. Usare un FileDialog con le swing e' rischioso? So che e' meglio non mescolare componenti swing e componenti awt perche' sono disegnati su livelli diversi ma in questo caso si usa una finestra diversa... Voi che dite?

Convertire tutto in awt non credo sia possibile, awt non ha le label con le icone e altre "chicche" che uso :stordita:

grazie ^^

PGI-Bis
28-08-2007, 11:26
Hai provato ad impostare il look and feel nativo? JFileChooser dovrebbe assumere in questo modo l'aspetto tipico del sistema.

afsdfdlecosdfsfdcco
28-08-2007, 11:46
Hai provato ad impostare il look and feel nativo? JFileChooser dovrebbe assumere in questo modo l'aspetto tipico del sistema.

Di default sul mac le applicazioni java usano il L&F aqua :eek:

JFileChooser:

http://img237.imageshack.us/img237/913/picture62hj5.jpg

FileDialog:

http://img171.imageshack.us/img171/9743/picture61gs6.jpg

La "vera finestra" e' quella di FileDialog, praticamente identica :stordita:

PGI-Bis
28-08-2007, 12:15
I componenti AWT sono semplicemente dei rettangoli dentro ai quali appare il componente nativo. FileDialog è la finestra predefinita di sistema. Niente, devi personalizzare il tuo JFileChooser per farlo apparire identico. Puoi farlo attraverso il delegato UI (FileChooserUI) oppure usando JFileChooser come pannello di una finestra di dialogo. E' relativamente semplice in entrambi i casi: hai già l'interfaccia che devi mimare, si tratta solo di creare qualche pulsante e un paio di ascoltatori di evento.

afsdfdlecosdfsfdcco
28-08-2007, 12:22
I componenti AWT sono semplicemente dei rettangoli dentro ai quali appare il componente nativo. FileDialog è la finestra predefinita di sistema. Niente, devi personalizzare il tuo JFileChooser per farlo apparire identico. Puoi farlo attraverso il delegato UI (FileChooserUI) oppure usando JFileChooser come pannello di una finestra di dialogo. E' relativamente semplice in entrambi i casi: hai già l'interfaccia che devi mimare, si tratta solo di creare qualche pulsante e un paio di ascoltatori di evento.

Dato che l'applicazione e' solo per mac (infatti uso anche il package com.apple) non ci sono problemi se uso FileDialog, o si?
Alla fine non sto mescolando componenti Swing e Awt nella stessa finestra, sto solo creando una nuova finestra :stordita:

afsdfdlecosdfsfdcco
28-08-2007, 12:28
eventualmente come intervengo nell'aspetto del jfilechooser?
o meglio, come tolgo pezzi dal jfilechooser? :stordita:

PGI-Bis
28-08-2007, 12:29
Teoricamente non dovresti avere problemi. Il mix AWT / Swing genera bizzarrìe visive a causa di una diversa gestione dell'ordine Z dei componenti. Essendo la tua parte AWT isolata in una finestra e non sussistendo un problema d'ordine tra finestre, tutto dovrebbe filare liscio.

Prova.

afsdfdlecosdfsfdcco
28-08-2007, 13:30
Teoricamente non dovresti avere problemi. Il mix AWT / Swing genera bizzarrìe visive a causa di una diversa gestione dell'ordine Z dei componenti. Essendo la tua parte AWT isolata in una finestra e non sussistendo un problema d'ordine tra finestre, tutto dovrebbe filare liscio.

Prova.

L'ho usato intensamente ma non sembra che ci siano problemi ^^

grazie della pazienza :)

Ho trovato questo: http://developer.apple.com/documentation/Java/Conceptual/Java14Development/index.html

Molto utile, parla anche del FileDialog