Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    [Java] Portare una finestra in primo piano

    Ho un JFrame, e ho bisogno di portarlo in primo piano in consegunza di un determinato evento.

    Il metodo toFront() non da risultati... c'è un altro sistema?
    Mandrake 10.1; Gnome 2.6
    FireFox&Thunderbird make Internet better

  2. #2
    mmm... nessuno sa come rispondere,o ho sbagliato l'impostazione del messaggio?
    Mandrake 10.1; Gnome 2.6
    FireFox&Thunderbird make Internet better

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Direi che non è una cosa semplice. Credo, infatti, che i metodi toFront() e toBack() della JDK 1.4 non funzionino. Per questo sono state scritte delle librerie esterne, specifiche per il sistema operativo in uso.

    Non so se i problema sia stato risolto dalla JDK 1.5

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  4. #4
    Ho provato col mio solito programma e il metodo svolge il suo lavoro. Avendo un pezzo di codice che riproduce il problema, si potrebbe provare...
    Su javaforum c'e' un articolo che consiglia di riscrivere il metodo paint (pero' si parla di applet, e il problema era che si trovava al di sotto di altre componenti della pagina al caricamento...) aggiungendo chiamate a setVisible e toFront dopo la chiamata a super.

    http://forum.java.sun.com/thread.jspa?threadID=576390
    Folle e' l'uomo che parla alla luna.
    Stolto chi non le presta ascolto.

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Originariamente inviato da dekdek
    Ho provato col mio solito programma e il metodo svolge il suo lavoro. Avendo un pezzo di codice che riproduce il problema, si potrebbe provare...
    Su javaforum c'e' un articolo che consiglia di riscrivere il metodo paint (pero' si parla di applet, e il problema era che si trovava al di sotto di altre componenti della pagina al caricamento...) aggiungendo chiamate a setVisible e toFront dopo la chiamata a super.

    http://forum.java.sun.com/thread.jspa?threadID=576390
    Li hai provati anche con sulla versione 1.4? Un'applicazione che ho scritto parecchio tempo fa doveva far uso di questi metodi, ma alla fine ho rinunciato, dato che non funzionavano...


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  6. #6
    Utente di HTML.it L'avatar di Mods
    Registrato dal
    Jun 2004
    Messaggi
    302
    forse non è la maniera più corretta però richiamando il metodo show() per JDK 1.4.x od il setVisible(true) per 1.5 a me funziona...
    Ci sono 10 tipi di persone al mondo: quelli che conoscono il codice binario, e quelli che non lo conoscono!

  7. #7
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Il metodo show() serve a rendere visibile un componente, non a portarlo in primo piano. Se io provo, ad esempio, ad avviare una applicazione che, dopo 5 secondi della sua esecuzione, richiama il metodo show() (o toFront()) essa non viene riportata in primo piano se è nascosta da un'altra finestra. Ad esempio, io avvio la mia applicazione, appare la finestra, ci sovrappongo un'altra finestra (ad esempio, quella del prompt), dopo 5 secondi dovrebbe tornare in primo piano la finestra dell'applicazione, ma ciò non succede.

    PS: uitlizzo JDK 1.4.2_06, ma il problema esiste anche con la 1.4.1_03


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  8. #8
    Purtroppo ho disinstallato la 1.4 prima di installare la nuova versione, quindi non saprei.
    Provato con toFront() + setVisible() ? (o viceversa...)
    Folle e' l'uomo che parla alla luna.
    Stolto chi non le presta ascolto.

  9. #9
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Originariamente inviato da dekdek
    Purtroppo ho disinstallato la 1.4 prima di installare la nuova versione, quindi non saprei.
    Provato con toFront() + setVisible() ? (o viceversa...)
    Sì... provato anche con combinazioni multiple di questi, ma niente... comunque io ci ho rinunciato, e mi sono rivolto a classi scritte da terze parti, con codice nativo. La cosa non era di cruciale importanza!


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  10. #10
    Utente di HTML.it L'avatar di Mods
    Registrato dal
    Jun 2004
    Messaggi
    302
    Originariamente inviato da LeleFT
    Il metodo show() serve a rendere visibile un componente, non a portarlo in primo piano. Se io provo, ad esempio, ad avviare una applicazione che, dopo 5 secondi della sua esecuzione, richiama il metodo show() (o toFront()) essa non viene riportata in primo piano se è nascosta da un'altra finestra. Ad esempio, io avvio la mia applicazione, appare la finestra, ci sovrappongo un'altra finestra (ad esempio, quella del prompt), dopo 5 secondi dovrebbe tornare in primo piano la finestra dell'applicazione, ma ciò non succede.

    PS: uitlizzo JDK 1.4.2_06, ma il problema esiste anche con la 1.4.1_03


    Ciao.
    ti dico che l'ho provato sia con la JDK 1.5 che con con 1.4.2_02 e il metodo show() mi porta in prima piano la finestra nonostante abbia Firefox od IE davanti e anche JBuilder
    Ci sono 10 tipi di persone al mondo: quelli che conoscono il codice binario, e quelli che non lo conoscono!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.