Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Costringere un JInternalFrame dentro un JDesktopPane

    Salve, la situazione è questa, ho un JInternalFrame che vado a mostrare dentro un JDesktopPane, ora esso viene correttamente mostrato al suo interno però mi succede che non risulta vincolato nell'area di lavoro del JDesktopPane ma può essere trascinato anche in zone nascoste dello stesso. E' come se in realtà mi venga visualizzato un JDesktopPane largo 10 cm x 10 cm ma esso sia in realtà molto più grande, oserei dire infinito, cosicchè io trascinando la finestra del JInternalFrame al suo interno potrei arrivare a portarla in zone del DesktopPane nascoste.
    Vorrei appunto che una volta che il bordo estremo del mio JInternalFrame sia arrivato a contatto con il confine "visibile" del JDesktopPane il primo venga vincolato all'area visibile e quindi bloccato, senza permettere ulteriori trascinamenti...non so se mi sono spiegato bene.

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

    Re: Costringere un JInternalFrame dentro un JDesktopPane

    Originariamente inviato da fabiolinux85
    non risulta vincolato nell'area di lavoro del JDesktopPane ma può essere trascinato anche in zone nascoste dello stesso. E' come se in realtà mi venga visualizzato un JDesktopPane largo 10 cm x 10 cm ma esso sia in realtà molto più grande, oserei dire infinito
    Se ci pensi ... è praticamente più o meno lo stesso comportamento che ha il desktop del tuo sistema operativo!

    Originariamente inviato da fabiolinux85
    cosicchè io trascinando la finestra del JInternalFrame al suo interno potrei arrivare a portarla in zone del DesktopPane nascoste.
    Vorrei appunto che una volta che il bordo estremo del mio JInternalFrame sia arrivato a contatto con il confine "visibile" del JDesktopPane il primo venga vincolato all'area visibile e quindi bloccato, senza permettere ulteriori trascinamenti...
    Su un JInternalFrame (come per qualunque altro componente AWT/Swing) puoi registrare un ComponentListener per ricevere notifica, tra le altre cose, del "move" e "resize". A quel punto per es. se si è mosso troppo in là ... rimettilo a posto al massimo possibile che ti interessa!
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3

    GIUSTO

    Hai ragione, non ci stavo ripensando che effettivamente è proprio quello il comportamento del Desktop.

    Ho risolto così:

    codice:
    private void formComponentMoved(java.awt.event.ComponentEvent evt) {
    
            if (this.getLocation().x < 0) {
                this.setLocation(0, this.getLocation().y);
            }
    
            if (this.getLocation().y < 0) {
                this.setLocation(this.getLocation().x, 0);
            }
    
            if(this.getLocation().x>MainWindow.DesktopWorkSx.getSize().width-this.getSize().width){
                this.setLocation(MainWindow.DesktopWorkSx.getSize().width-this.getSize().width, this.getLocation().y);
            }
    
            if(this.getLocation().y>MainWindow.DesktopWorkSx.getSize().height-this.getSize().height){
                this.setLocation(this.getLocation().x, MainWindow.DesktopWorkSx.getSize().height-this.getSize().height);
            }
    
        }

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

    Re: GIUSTO

    Originariamente inviato da fabiolinux85
    Ho risolto così:
    Si può compattare e riscrivere meglio, ovviamente!
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5

    SI SI CERTO

    Adesso vedo come sintetizzare meglio il tutto, l'importante è che ho ottenuto quello che volevo fare!!! Grazie

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