Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    396

    pannello caricamento in corso....

    Ciao, vorrei far visualizzare un pannello con il messaggio "caricamento in corso..." quando sto effettuando delle operazioni che richiedono tempo.
    Come avviene quando si visualizza la clessidra di windows.
    Vorrei far apparire questo messaggio in un pannello che si sovrapponga allo sfondo originale e magari oscurandolo (in modo da non poter compiere altre operazioni su di esso fino a quando il caricamento non è completato).

    Che mi consigliate di fare?

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: pannello caricamento in corso....

    Originariamente inviato da Salinas
    Ciao, vorrei far visualizzare un pannello con il messaggio "caricamento in corso..." quando sto effettuando delle operazioni che richiedono tempo.
    Come avviene quando si visualizza la clessidra di windows.
    Vorrei far apparire questo messaggio in un pannello che si sovrapponga allo sfondo originale e magari oscurandolo (in modo da non poter compiere altre operazioni su di esso fino a quando il caricamento non è completato).
    Mettere un pannello sopra "altro" generalmente è delicato .. nel senso che bisogna vedere dove lo metti e intendo dire in quale layout manager. Anche ammesso di aver la possibilità di sovrapporre un pannello ad altri "componenti", non è affatto qualcosa di "bloccante" (o "modale" per meglio dire). Perché a meno che gestisci la cosa da codice, nessuno vieta all'utente di far passare il focus ad altro anche solo con la tastiera.

    Già meglio sarebbe mettere il pannello come "glass pane". Il glass pane è uno "strato" che sta di sopra al content pane (occupando tutto lo spazio). Per default c'è un JPanel non visibile. Ma si può impostare un qualunque Component.
    Se c'è un Component visibile come glass pane normalmente "cattura" gli eventi del mouse (ma non impedisce anche solo tramite tastiera di passare ad un componente "sotto").

    Altra possibilità è usare un javax.swing.ProgressMonitor che mostra una dialog particolare per visualizzare l'avanzamento di una operazione. Solo che non è "modale" (ma si potrebbe però disabilitare il frame in modo da "simulare" il modale).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    396
    ma utilizzando glass pane, posso visualizzare quello che voglio al suo interno?
    L'immagine che metto occupa tutto lo schermo o solo, per esempio, la parte centrale? e poi il resto è costituito dal pannello che c'è sotto?

    Potrei anche visualizzare un'icona animata che mi faccia rendere conto del caricamento... è complicata da inserire?

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Salinas
    ma utilizzando glass pane, posso visualizzare quello che voglio al suo interno?
    Ovvio ... è in generale un Component ... può essere un JPanel con dentro qualunque altra cosa.

    Originariamente inviato da Salinas
    L'immagine che metto occupa tutto lo schermo o solo, per esempio, la parte centrale? e poi il resto è costituito dal pannello che c'è sotto?
    Il glass pane occupa tutto lo spazio del frame (come il content pane d'altronde).

    Originariamente inviato da Salinas
    Potrei anche visualizzare un'icona animata che mi faccia rendere conto del caricamento... è complicata da inserire?
    Ripeto che se ci metti es. un JPanel potresti metterci dentro quello che vuoi, pure es. un JLabel che mostra un ImageIcon di una immagine gif animata!

    Tieni solo presente, l'ho detto prima, il glass pane visibile cattura gli eventi del mouse ma non impedisce ad esempio al focus di passare a qualcosa "sotto".
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    396
    come lo utilizzo il glass pane? ci sono degli esempi?

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Salinas
    come lo utilizzo il glass pane? ci sono degli esempi?
    The Glass Pane
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    396
    si, ma qui fanno tutti esempi con i frame, io ho un pannello come contenitore base, come faccio ad applicarlo ad esso?

    Ho provato ad inserire questo codice, ma se non lo si applica ad un frame (il this), non funziona:
    codice:
    final javax.swing.JPanel glass = (javax.swing.JPanel) this.getGlassPane();

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Salinas
    ma qui fanno tutti esempi con i frame
    JFrame contiene solo 1 componente, un JRootPane. E JRootPane contiene, oltre ad altro, il glass pane.

    La seconda immagine sulla destra visibile in questa pagina descrive bene la struttura di un JRootPane.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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 © 2025 vBulletin Solutions, Inc. All rights reserved.