Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2013
    Messaggi
    37

    Problema Jlist-JtabbedPane

    ciao a tutti!

    io non riesco ad inserire una jlist in un jtabbedpane..

    mi spiego

    ho un tabbedpane con varie linguette e ad ogni linguetta è associato un jpanel..
    come posso inserire la jlist o altre componenti?

    vi metto il codice

    codice:
    JPanel panel_home = new JPanel();
    		JList list_home = new JList();
    		list_home.setBounds(20, 20, 100, 100);
    		list_home.setBackground(Color.black);
    		panel_home.add(list_home);
    
                    JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.TOP);
                    tabbedPane.add("     Home     ", panel_home);
                    tabbedPane.setBounds(10, 21, 1250, 630);
                    getContentPane().add(tabbedPane);
    		setVisible(true);
    qualche idea?

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da maxnanus Visualizza il messaggio
    io non riesco ad inserire una jlist in un jtabbedpane..
    Innanzitutto JList si mette tipicamente come view in JScrollPane, poiché deve poter scrollare se necessario quando ci sono molti elementi. Non è obbligatorio, ovvio ... dipende da cosa devi fare con JList.

    JPanel ha per default un FlowLayout, quindi il tuo setBounds(20, 20, 100, 100) non serve a nulla. Se anche il content pane ha il BorderLayout di default, pure il setBounds(10, 21, 1250, 630) idem non serve a nulla.

    La questione del tuo codice è che come ho detto JPanel ha un FlowLayout. I componenti possono "fluire" nel pannello su eventualmente più righe, rimanendo però sempre dimensionati alla loro dimensione "preferita". L'unico componente in JPanel è il JList. Il punto è che un JList "vuoto" ha una dimensione "preferita" di .... 0x0, quindi inizialmente non lo vedi.

    Il JPanel invece occupa effettivamente tutto lo spazio del tabbed pane.

    P.S. dovresti comprendere meglio layout manager, posizionamenti e dimensionamenti.
    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
    Dec 2013
    Messaggi
    37
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Innanzitutto JList si mette tipicamente come view in JScrollPane, poiché deve poter scrollare se necessario quando ci sono molti elementi. Non è obbligatorio, ovvio ... dipende da cosa devi fare con JList.

    JPanel ha per default un FlowLayout, quindi il tuo setBounds(20, 20, 100, 100) non serve a nulla. Se anche il content pane ha il BorderLayout di default, pure il setBounds(10, 21, 1250, 630) idem non serve a nulla.

    La questione del tuo codice è che come ho detto JPanel ha un FlowLayout. I componenti possono "fluire" nel pannello su eventualmente più righe, rimanendo però sempre dimensionati alla loro dimensione "preferita". L'unico componente in JPanel è il JList. Il punto è che un JList "vuoto" ha una dimensione "preferita" di .... 0x0, quindi inizialmente non lo vedi.

    Il JPanel invece occupa effettivamente tutto lo spazio del tabbed pane.

    P.S. dovresti comprendere meglio layout manager, posizionamenti e dimensionamenti.
    grazie!
    risolto con absolute layout

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da maxnanus Visualizza il messaggio
    risolto con absolute layout
    Che tu intenda "senza layout manager" (=posizionamento "assoluto") o che tu intenda con un layout manager apposito che accetta constraint per posizioni/dimensioni esplicite ...... cerca di evitarli, se non in casi davvero particolari (e non credo sia il tuo caso).
    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.