Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di Sun1
    Registrato dal
    Feb 2006
    Messaggi
    81

    Java Swing - JInternalFrame con ScrollBar

    Ciao a tutti,
    vorrei avere alcune informazioni da qualcuno che se ne intende di Swing.

    Ho una situazione di questo tipo:

    1. Ho un JFrame principale, dove ho inserito una JMenuBar
    2. Al click di una voce di suddetta JMenuBar, apro un JInternalFrame che contiene un form di inserimento abbastanza grande.

    Ciò che vorrei ottenere, è di inserire una scrollbar al JInternalFrame nel momento in cui ridimesiono lo stesso (o ridimensiono il JFrame padre (punto 1) ).

    Ho provato in vari modi ma non ne sono ancora venuta a capo

    Qualcuno ha già affrontato situazioni di questo tipo e può fornirmi indicazioni (magari accompagnate da qualche esempio)?

    Vi ringrazio in anticipo per l'aiuto!

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

    Re: Java Swing - JInternalFrame con ScrollBar

    Originariamente inviato da Sun1
    1. Ho un JFrame principale, dove ho inserito una JMenuBar
    2. Al click di una voce di suddetta JMenuBar, apro un JInternalFrame che contiene un form di inserimento abbastanza grande.

    Ciò che vorrei ottenere, è di inserire una scrollbar al JInternalFrame nel momento in cui ridimesiono lo stesso (o ridimensiono il JFrame padre (punto 1) ).
    Faccio solo una premessa: i JInternalFrame si usano generalmente in coppia con JDesktopPane. Cioè quest'ultimo fa da contenitore per i JInternalFrame (alla stessa stregua di come il "desktop" del S.O. fa da contenitore alle finestre del sistema).

    Nel tuo caso il JDesktopPane occupa tutto lo spazio libero del JFrame e si ridimensiona in proporzione appunto al JFrame? Allora metti un JScrollPane che contiene il JDesktopPane.
    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 L'avatar di Sun1
    Registrato dal
    Feb 2006
    Messaggi
    81

    Re: Re: Java Swing - JInternalFrame con ScrollBar

    Originariamente inviato da andbin
    i JInternalFrame si usano generalmente in coppia con JDesktopPane.
    In realtà io ho utilizzato il JInternalFrame in coppia con JPanel e non con JDesktopPane.

    Nel tuo caso il JDesktopPane occupa tutto lo spazio libero del JFrame e si ridimensiona in proporzione appunto al JFrame?
    Il mio JInternalPane occupa tutto lo spazio messo a disposizione dal JFrame padre (che ho settato alla dimensione massima dello schermo) ma è anche vero che ho settato gli attributi del costruttore di JInternalFrame in questo modo

    false, // resizable
    true, // closable
    false, // maximizable
    false// iconifiable


    quindi in realtà non è il JInternalFrame che vado a ridimensionare ma è il JFrame più esterno. Rimane il problema di dover inserire una scrollbar che, al ridimensionamento del JFrame padre mi permetta cmq di visualizzare tutto il contenuto del JInternalFrame figlio (attraverso appunto una scroll bar).

    Spero di essere stata abbastanza chiara

  4. #4
    Utente di HTML.it L'avatar di Sun1
    Registrato dal
    Feb 2006
    Messaggi
    81

    Re: Re: Java Swing - JInternalFrame con ScrollBar

    Originariamente inviato da andbin
    i JInternalFrame si usano generalmente in coppia con JDesktopPane.
    In realtà io ho utilizzato il JInternalFrame in coppia con JPanel e non con JDesktopPane.

    Nel tuo caso il JDesktopPane occupa tutto lo spazio libero del JFrame e si ridimensiona in proporzione appunto al JFrame?
    Il mio JInternalPane occupa tutto lo spazio messo a disposizione dal JFrame padre (che ho settato alla dimensione massima dello schermo) ma è anche vero che ho settato gli attributi del costruttore di JInternalFrame in questo modo

    false, // resizable
    true, // closable
    false, // maximizable
    false// iconifiable

    quindi in realtà non è il JInternalFrame che vado a ridimensionare ma è il JFrame più esterno. Rimane il problema di dover inserire una scrollbar che, al ridimensionamento del JFrame padre mi permetta cmq di visualizzare tutto il contenuto del JInternalFrame figlio (attraverso appunto una scroll bar).

    Spero di essere stata abbastanza chiara

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

    Re: Re: Re: Java Swing - JInternalFrame con ScrollBar

    Originariamente inviato da Sun1
    In realtà io ho utilizzato il JInternalFrame in coppia con JPanel e non con JDesktopPane.
    Come hai già sicuramente capito JInternalFrame è sì un componente Swing un po' particolare ma dopotutto estende comunque JComponent, pertanto nulla vieta, tecnicamente parlando, di metterlo dentro qualcos'altro che non sia JDesktopPane.

    Tipicamente si usa JDesktopPane come contenitore ma semplicemente perché è stato fatto apposta per fare da "desktop" per i JInternalFrame.

    Comunque, hai messo JInternalFrame dentro un JPanel quindi? E il JPanel quale layout manager usa e dove è a sua volta messo?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  6. #6
    Utente di HTML.it L'avatar di Sun1
    Registrato dal
    Feb 2006
    Messaggi
    81

    Re: Re: Re: Re: Java Swing - JInternalFrame con ScrollBar

    Originariamente inviato da andbin
    Comunque, hai messo JInternalFrame dentro un JPanel quindi? E il JPanel quale layout manager usa e dove è a sua volta messo?
    Ho fatto esattamente così:


    JPanel jPanel = new JPanel();
    GridBagLayout gridBagLayout = new GridBagLayout();
    GridBagConstraints gridBagConstraints = new GridBagConstraints();
    gridBagConstraints.fill = GridBagConstraints.HORIZONTAL;
    jPanel.setLayout(gridBagLayout);


    tutti gli elementi (label, combo, text field, ecc..) da inserire nel panel li ho gestiti attraverso questo metodo


    protected void manageGridBagConstraints(Component c, int gridx, int gridy, int gridwidth, int gridheight, int padding) {
    gridBagConstraints.gridx = gridx;
    gridBagConstraints.gridy = gridy;
    gridBagConstraints.gridwidth = gridwidth;
    gridBagConstraints.gridheight = gridheight;
    gridBagConstraints.insets = new Insets(5, 5, 5, padding);
    gridBagLayout.setConstraints(c, gridBagConstraints);
    jPanel.add(c);
    add(jPanel);
    }


    quell' add(jPanel) ovviamente aggancia il jPanel al JInternalFrame.

  7. #7
    Utente di HTML.it L'avatar di Sun1
    Registrato dal
    Feb 2006
    Messaggi
    81
    qualche aiutino?

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Sun1
    qualche aiutino?
    In Swing c'è 1 componente dedicato allo "scrolling", è JScrollPane. Il componente da scrollare si mette come "view" dentro il JScrollPane (e il JScrollPane si mette a sua volta dentro altro).
    Quindi decidi tu cosa mettere nel JScrollPane.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  9. #9
    Utente di HTML.it L'avatar di Sun1
    Registrato dal
    Feb 2006
    Messaggi
    81
    Originariamente inviato da andbin
    In Swing c'è 1 componente dedicato allo "scrolling", è JScrollPane.
    Conosco JScrollPane, ma purtroppo non sono riuscita ad ottenere ciò che volevo applicandolo ad un JInternalFrame. Per questo motivo chiedevo un esempio pratico...per vedere dove sbaglio nell'utilizzare questa componente

  10. #10
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Perché non una JDialog e risolvevi tutti i problemi dall'inizio? Ti stai ostinando a trasportare acqua in sacchetti di plastica... sempre contenitori sono, ma non tanto pratici.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

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.