Visualizzazione dei risultati da 1 a 4 su 4

Discussione: ComboBox e indici

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2000
    Messaggi
    1,175

    ComboBox e indici

    Leggendo su internet e dal manuale ufficiale, si capisce che il meccanismo di funzionamento di un combo box al momento della creazione è che il costruttore prende un array e l'n-esimo elemento dell'array è anche l'n-esimo elemento indice del ComboBox. PErò se ho da mostrare una lista di oggetti che hanno tutti un loro ID all'interno di un DB come lo posso gestire?

    Al posto di usarlo in questo modo posso fare in modo che l'indice del combo box lo gestisco io?

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Ti conviene impacchettare tutto in una classe, in cui avrai un metodo getID... ti faccio un esempio banale
    codice:
    import javax.swing.*;
    import java.awt.event.*;
    
    /**
     *
     * @author Andrea
     */
    public class JPersonalComboBox extends JFrame {
        
        private class Persona {
            private int id;
            private String name,surname;
            
            public Persona(String name, String surname, int id) {
                this.name = name;
                this.surname = surname;
                this.id = id;
            }
            public Persona() {
                this("John", "Doe", 0);
            }
            
            public String toString() {
                return this.name+ " " + this.surname;
            }
            
            public String getName() {
                return this.name;
            }
            
            public String getSurname() {
                return this.surname;
            }
            
            public int getID() {
                return this.id;            
            }
            
            public void setName(String name) {
                this.name = name;
            }
            
            public void setSurname(String surname) {
                this.surname = surname;
            }
            
            public void setID(int id) {
                this.id = id;
            }        
        }
        
        /** Creates a new instance of JPersonalComboBox */
        private JComboBox mycombo;
        private Persona[] persona;
        private String[] names = {"Andrea", "Francesca", "Paolo", "Ermenegilda", "Brandimarte"};
        private String[] surnames = {"Ariosto", "Rossi", "Verdi", "Bianchi", "Bramante"};
        private int[] ids = {5, 100, 2, 12, 14};
        
        public JPersonalComboBox() {
            super("ComboBox Demo");
            this.setSize(400,400);
            persona = new Persona[names.length];
            for (int i = 0; i < persona.length; i++) {
                persona[i] = new Persona(names[i], surnames[i], ids[i]);
            }
            mycombo = new JComboBox(persona);
            this.getContentPane().add(mycombo);
            mycombo.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent ae) {
                    System.out.println(((Persona)mycombo.getSelectedItem()).getID());
                }
                
            });
            this.setVisible(true);
            this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        }
        
        public static void main (String[] args) {
            new JPersonalComboBox();
        }
              
        
    }
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2000
    Messaggi
    1,175
    poi, come utilizzerei questa classe all'interno delle altre classi per creare il JCombo Box?

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    ? C'è pure fatto. compila e lancia. Persona la trasformi nella tua classe "record estratto", l'array di Persona diventa la lista dei record estratti. non c'è altro da fare.
    <´¯)(¯`¤._)(¯`»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.