Newsgroup: it.comp.java
Titolo: Due domande: JFrame e UI

Buongiorno a tutti.
Vi pongo subito le mie domande.
1) Sto cercando di creare una finestra sulla cui barra del titolo sia
presente solo il pulsante "X" di chiusura, senza cioč anche quelli di
riduzione a icona e di massimizzazione.
Non sono esperto di javax.swing!! In ogni caso, sono partito da un JFrame ma
spulciando la documentazione di Java non ho trovato nessun metodo per fare
ciņ che voglio.
Ad esempio, anche il metodo setResizable(false) non c'entra nulla.
Come posso fare?
2) Qualche settimana fa postai un problema relativo alla creazione di Menu
che fossero identici a quelli di Office XP e Office 2003 (tanto per
intenderci).
Smanettando qua e lą, data la mia inesperienza su Swing, ho capito che si
trattava dei delegate incaricati di disegnare i componenti della JMenuBar e
gestirne gli eventi.
Ora, cercare di creare dei menu grafici *identici* a quelli di Office XP /
2003 partendo dalle classi JMenuUI e JPopupMenuUI non č affatto
banale.........
Esiste un qualche tool di sviluppo che, tramite interfaccia grafica, mi
permetta di colorare i componenti di Swing e di smanettarci sopra e che
automaticamente scriva il codice necessario?
Oppure, meglio ancora forse, esistono dei delegate pronti da scaricare in
modo che uno possa fare:
JMenu menu = *new* JMenu("File");
MenuUIAppenaScaricato ui = *new* MenuUIAppenaScaricato();
menu.setUI(ui);
Grazie a tutti coloro che mi risponderanno.
-- 
*Rain*
«Il cuore ha le sue ragioni che la ragione non conosce»
[Blaise PASCAL] 




ciao,    potresti usare una JDialog. Riguardo ai menu, non ho capito se si 
tratta solo di un problema di Look&Feel o altro....

 se si tratta solo di un problema di Look&Feel o altro....
Rispondo subito che il problema riguarda proprio il L&F. Ma per farti 
entrare meglio nell'argomento tanto vale che te lo espongo per bene. ^__^
Supponiamo di aver creato una JMenuBar all'interno di un JFrame che ha come 
oggetti JMenu i seguenti nomi: "File" e "Visualizza".
Come noto, se il mouse passa sopra una delle suddette voci esse cambiano 
colore di primo piano e di sfondo in quanto diventano /selezionate/. Per 
esempio, impostando un L&F su Windows, esse assumono primo piano bianco e 
sfondo blu scuro.
Ora, qual è il problema?
Il problema è che io vorrei cambiare questi colori oltre che, come dirò 
brevemente dopo, l'aspetto del JPopupMenu una volta cliccata su una voce 
JMenu ( /i/./e/. "File", "Visualizza").
Alla luce di numerose prove che ho fatto posso garantirti che, seppur 
intercettando gli eventi del mouse al passaggio sopra una voce JMenu, i 
colori di primo piano e di sfondo non cambiano (rimangono sempre bianco e 
blu scuro rispettivamente).
Questo perchè interviene inevitabilmente Java insieme al L&F impostato 
delegando la visualizzazione dell'oggetto in questione al delegate, che in 
questo caso è di default JMenuUI.
In effetti, abbozzando un delegate per l'oggetto JMenu eccolo là che i 
colori cambiano e si ottiene il risultato cercato.
In realtà, le cose non stanno proprio così (altrimenti non starei qui a 
scrivere!!!!!). Infatti, occorre gestire tutti gli eventi del mouse: dal 
trascinamento al click, dal passaggio del mouse tra una JMenuItem e l'altra, 
ecc... Ti assicuro che gli eventi sono tantissimi specie se l'obiettivo 
finale vuole essere quello di _uguagliare_ i menu di Office XP / 2003.
Non parliamo poi di voler cambiare a tutti gli effetti l'aspetto del 
JPopupMenu, fatto cioè di ombre dove a sua volta ogni JMenuItem viene 
selezionata con colori ben precisi.
Alla fine dei giochi ci si trova a dover scrivere 3 delegate (JMenuUI, 
JPopupMenuUI e JMenuItemUI) più tutta la gestione degli eventi del mouse.
Dato quindi che la cosa risulta piuttosto complessa, mi chiedevo se 
esistesse un'alternativa.
Ad esempio dei delegate già pronti o dei tool ad interfaccia grafica che si 
occupino di scrivere direttamente il codice necessario.


 blu scuro rispettivamente).
dunque per cambiare i colori di sfondo delle voci di menu (o altro) potresti 
provare, durantre l'inizializzazione della tua applicazione, con
UIManager.put("MenuItem.selectionBackground", .....colore....);
UIManager.put("MenuItem.selectionForeground", .....colore....);
..eccc....
L'uitlità è che valgono per tutti gli i menuitem che fai.
Di default per windows sono appunto blu e bianco...
puoi cambiare molte proprieta grafiche (i colori di MenuItem, Menu, MenuBar, 
Label, Textfield ecc ecc  ) in questo modo, tutto sta a sapere quali 
sono....
non so se nel javadoc le trovi agevolmente, ma su internet ci saranno... (io 
avevo scaricato da non so dove un'applicazioncina che mi fa l'elenco di 
tutte)
--