Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2012
    Messaggi
    74

    [Java] "Ingrandire" JInternalFrame

    Ciao,
    Ho creato una gui con un JDesktopPane di base e una JMenuBar che mi permette di aprire diverse JInternalFrame.
    Volevo che al momento della visualizzazione della finestra interna questa assumesse le dimensioni del desktopPane(come avviene quando si preme il pulsante ingrandisci).

    grazie

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Hai due modi:

    1) Imposti le dimensioni del JInternalFrame pari alle dimensioni del JDesktopPane.
    2) Usi il DesktopManager del JDesktopPane per incrandire il JInternalFrame (consigliato).

    Un esempio della seconda opzione:

    codice:
    JInternalFrame frm = ...   // Il tuo JInternalFrame
    tuoJDesktopPane.getDesktopManager().maximizeFrame( frm );
    Credo che il frame debba essere già stato aggiunto al JDesktopPane prima di poterlo "massimizzare".


    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

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2012
    Messaggi
    74
    Grazie,il secondo metodo funziona alla perfezione.

    Percaso,sai anche come non fare "uscire" i frame interni dai confini del desktopPane?

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Originariamente inviato da cavaalb
    Percaso,sai anche come non fare "uscire" i frame interni dai confini del desktopPane?
    Non credo sia "possibile" se non implementando una soluzione spartana: aggiungi al JInternalFrame un ComponentListener, che ridefinisca il metodo componentMoved() in modo da essere notificato degli spostamenti del frame. Se lo spostamento fa "uscire" il JInternalFrame dal JDesktopPane (frame.posX + frame.width > desktop.width oppure frame.posY + frame.height > desktop.height, e, chiaramente, lo stesso per i lati superiore e sinistro) allora riposizioni il JInternalFrame in modo da farlo combaciare al bordo.

    Potrebbe essere utile/necessario implementare anche componentResized() in modo che eventuali ridimensionamenti non lo facciano uscire.

    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

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2012
    Messaggi
    74
    grazie mille

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.