Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    Problemini con la libreria swing

    Ciao, sto svolgendo un progetto per la scuola ma non riesco piu' a venirne a capo. essenzialmente sto costruendo un'interfaccia grafica molto simile a quella che potrebbe essere di msn, il problema nasce quando inserisco i contatti: appena ne aggiungo uno, esso si espande alla dimensione del suo contenitore nonostante abbia utilizzato setPreferredSize(...), quando aggiungo un secondo contatto si smezzano lo spazio e cosi' via...
    C'e' un modo per bloccare la dimensione dei vari contatti?
    Per essere piu' chiaro per quanto riguarda la struttura, il contenitore piu' esterno e' un JScrollPane, dentro al quale c'e' un altro contenitore JPanel che a sua volta contiente tutti i contenitori costituenti i contatti.

    grazie in anticipo

  2. #2
    Utente di HTML.it L'avatar di @DI3GO@
    Registrato dal
    Nov 2008
    Messaggi
    537
    Non ho capito alcune cose?
    1- Il setPreferredSize() a chi è applicato?
    2- Riesci a postare due immagini piccole piccole del prima e del dopo?
    3- Grazie a te per la pazienza, ma più informazioni = soluzione ottimale!
    Nipote: persona incompetente, con le soli doti di "copia/incolla" e la creazione automatica di siti internet ed interfaccie grafiche.Compie lavori apparentemente qualificati e richiesta una modifica sparisce in quatemala con i pochi soldi ottenuti.[...] Fonte la Diegonzelli

  3. #3
    Ho applicato setPreferredSize(..) al contenitore esterno (JScrollPane) e ai contatti che sono al loro volta dei contenitori, ti posto quattro fasi:
    Immagini allegate Immagini allegate

  4. #4
    seconda
    Immagini allegate Immagini allegate

  5. #5
    terza
    Immagini allegate Immagini allegate

  6. #6
    quarta
    Immagini allegate Immagini allegate

  7. #7
    Utente di HTML.it L'avatar di @DI3GO@
    Registrato dal
    Nov 2008
    Messaggi
    537
    Ok.Ora molto più chiaro ( anche se avevo inteso già una cosa simile ).
    Allora, immagino che il pannello dei contatti è in GridLayout dedotto dalle immagini.
    Sto pensando se una JList ti permette di inserire delle immagini, in questo modo non ti devi più preoccupare di nulla....Mi documento e mi faccio risentire.

    Per il resto purtroppo se è un GridLayout si auto-adatta e non ci puoi fare nulla....al più utilizzare diversamente il Layout, come per esempio una funzione che all'aggiunta di un nuovo contatto crea il bounds personalizzato ( quindi con un Layout = null ).
    Spero di esser stato chiaro.
    Cmq, mi faccio risentire.
    Nipote: persona incompetente, con le soli doti di "copia/incolla" e la creazione automatica di siti internet ed interfaccie grafiche.Compie lavori apparentemente qualificati e richiesta una modifica sparisce in quatemala con i pochi soldi ottenuti.[...] Fonte la Diegonzelli

  8. #8
    in realta' e' un BoxLayout

  9. #9
    Utente di HTML.it L'avatar di @DI3GO@
    Registrato dal
    Nov 2008
    Messaggi
    537
    JList Sun
    Codice PHP:
     // Display an icon and a string for each object in the list.

     
    class MyCellRenderer extends JLabel implements ListCellRenderer {
         final static 
    ImageIcon longIcon = new ImageIcon("long.gif");
         final static 
    ImageIcon shortIcon = new ImageIcon("short.gif");

         
    // This is the only method defined by ListCellRenderer.
         // We just reconfigure the JLabel each time we're called.

         
    public Component getListCellRendererComponent(
           
    JList list,              // the list
           
    Object value,            // value to display
           
    int index,               // cell index
           
    boolean isSelected,      // is the cell selected
           
    boolean cellHasFocus)    // does the cell have focus
         
    {
             
    String s value.toString();
             
    setText(s);
             
    setIcon((s.length() > 10) ? longIcon shortIcon);
             if (
    isSelected) {
                 
    setBackground(list.getSelectionBackground());
                 
    setForeground(list.getSelectionForeground());
             } else {
                 
    setBackground(list.getBackground());
                 
    setForeground(list.getForeground());
             }
             
    setEnabled(list.isEnabled());
             
    setFont(list.getFont());
             
    setOpaque(true);
             return 
    this;
         }
     }

     
    myList.setCellRenderer(new MyCellRenderer()); 
    Spero sia comprensibile, ovvio, applica le modifiche per il tuo programma ( come per esempio la path dell'immagine passala come parametro a questa funzione ).
    Penso che per quello che vuoi ottenere questa sia la soluzione ottimale.
    Nipote: persona incompetente, con le soli doti di "copia/incolla" e la creazione automatica di siti internet ed interfaccie grafiche.Compie lavori apparentemente qualificati e richiesta una modifica sparisce in quatemala con i pochi soldi ottenuti.[...] Fonte la Diegonzelli

  10. #10
    non mi e' proprio cosi' chiaro, non sono molto pratico di java, cmq ora provo a darci un'occhiata, grazie di tutto

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.