Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    315

    [Java] JFrame a riempimento dinamico

    Salve,
    il mio problema è questo: devo avere un frame al cui costruttore passare un array di oggetti.
    In base alla dimensione dell'array inserire tante label e button nel frame che prendono informazioni dagli oggetti.

    Qualcuno ha suggerimenti da darmi?

  2. #2
    Utente di HTML.it L'avatar di Reiuky
    Registrato dal
    Jul 2008
    Messaggi
    371
    Adesso non l'ho provato ma dovrebbe funzionare.

    Puoi impostare qualcosa del genere...

    codice:
    public void makePanel( Object[] arg)
    {
       label[] = new JLabel[arg.length);
       button[] = new JButton[arg.lentgh];
    
       for( int count = 0;count < arg.length; count++)
       {
          label[count] = new JLabel( count + " " + arg.toString() );
          button[count] = new JButton( count + " " + arg.toString() );
          this.add( label[count]);
          this.add( button[count]);
       }
     }
    Ovviamente te lo devi adattare

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    315
    Sicuramente. Ottima l'idea dei vettori.

    In effetti a me servirebbe soprattuto adattare le dimensioni del frame in base al numero di componenti che ci ho messo.
    C'è qualcosa di già fatto o devo agire "manualmente" sulla size?

  4. #4
    Utente di HTML.it L'avatar di Reiuky
    Registrato dal
    Jul 2008
    Messaggi
    371
    Da quando ho scoperto il GridBagLayout, io fo tutto con quello

    Non adatta il panel ai componenti, ma i componenti al panel, il che non è male ^___^

    Altrimenti, mi sa che ti tocca lavorare con la size....

    Comunque, ti consiglio di dare un'occhiata anche alla JList e alla JComboBox, per le liste

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    315
    Cosa intendi per liste?

    PS Andrò subito a studiare questo layout!!!

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Reiuky
    Non adatta il panel ai componenti, ma i componenti al panel, il che non è male ^___^
    In generale i layout manager dimensionano i componenti (secondo i criteri specifici per ogni layout) in base alla dimensione del contenitore, non il contrario.

    Se si fa un pack() sul contenitore (la finestra), allora il contenitore si dimensiona e adatta in base al "preferred size" dei componenti contenuti.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Utente di HTML.it L'avatar di Reiuky
    Registrato dal
    Jul 2008
    Messaggi
    371
    Liste a selezione multipla, o elenchi a discesa.

    Non so che ci devi fare con quegli oggetti, ma se è simile a quello che fo io, ti consiglio di fare una bella lista con uno scrollpane associato e un solo pulsante fuori.

    Cerco qualche esempio....

    vedi qui

    http://www.mokabyte.it/2001/02/swing6.htm

  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    315
    In pratica mi arrivano una lista di oggetti. Ogni oggetto contiene un'identificativo e una serie di valori stringa.
    Io voglio creare un frame che per ogni oggetto mi inserisca nella finestra una label con l'identificativo e una combo con i valori stringa. Quindi qualcosa del tipo:

    label combo
    label combo
    . .
    . .
    . .
    label combo
    button

    e un button di conferma.

  9. #9
    Utente di HTML.it L'avatar di Reiuky
    Registrato dal
    Jul 2008
    Messaggi
    371
    Ho capito.

    Con i metodi detti, puoi farlo tranquillamente.

    Ti passo questo link
    http://www.javastaff.com/article.php...60916232037944
    in cui ci sono spiegati bene tutti i layout manager. Puoi provarli e vedere qual'è il più adatto.

  10. #10
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    315
    Nella JDialog che ho fatto ho settato il layout con il GridBagLayout come da voi suggerito.
    La mia domanda è questa: mentre in verticale si deve adattare in base al numero di componenti che verrano visualizzati, si può settare soltanto la dimensione in orizzontale?

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.