Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2013
    Messaggi
    52

    selezionare item jlist e far comparire un campo in un'altra jlist

    ciao a tutti ragazzi ho un problema mi potreste aiutare,
    praticamente ho 2 jlist in una ho l'elenco di 2 tabelle e vorrei che selezionando il nome di una tabella mi comparissero i campi di tale tabella nell'altra jlist come potrei fare grazie in anticipo

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    99
    posta un po' di codice così sarà più facile aiutarti, comunque il principio dovrebbe essere di usare un ListSelectionListener e dentro di quello inserire il campo in un'altra stringa usando getSelectedValue() per prelevare dalla prima lista e setListData() per aggiungerlo alla seconda.

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2013
    Messaggi
    52
    è da migliorare perche cosi com'è mi carico sulla jListtabelle le tabelle e su jListCampi mi visualiza i campi
    mentre io vorrei che sul click della tabella mi compaiano i campi della tabella selezionata:

    questa è la jframe dove stanno le jlist

    public void inizializza_list() {
    jListTabelle.setModel(ComponentiEpad.listModel("ta bella", null));
    jListCampi.setModel(ComponentiEpad.listModel("camp i", "monocolonna"));
    }
    questo sta in un altra classe

    public static CustomListModel listModel(String nome_lista, String nome_tabella) {
    CustomListModel model = null;

    ArrayList<String> elementi = new ArrayList<String>();

    switch (nome_lista) {
    case "tabella":
    ResultSet tabella;
    tabella = numeri.getResultSet("SHOW TABLES");
    try
    {
    while(tabella.next())
    {
    String str = tabella.getString(1);
    elementi.add(str);

    }
    } catch(SQLException e)
    {
    e.printStackTrace();
    }

    model = new CustomListModel(elementi);
    break;
    case "campi":
    tabella = numeri.getResultSet("DESCRIBE " +nome_tabella+ ";");

    try
    {
    while(tabella.next())
    {
    String str = tabella.getString(1);
    elementi.add(str);

    }
    } catch(SQLException e)
    {
    e.printStackTrace();
    }

    model = new CustomListModel(elementi);
    break;
    }

    return model;
    }

    }


    e questa è la classe per la lista

    package strumenti;


    import java.util.ArrayList;


    import javax.swing.AbstractListModel;
    import javax.swing.ListModel;


    @SuppressWarnings({"serial"})
    public class CustomListModel extends AbstractListModel<String> implements ListModel<String> {

    private ArrayList<String> lista;
    private String item_selezionato;

    public CustomListModel(ArrayList<String> nuova_lista) {
    lista = nuova_lista;
    }

    public String getSelectedItem() {
    return item_selezionato;
    }


    public void setSelectedItem(String nuovo_valore) {
    item_selezionato = nuovo_valore;
    }

    @Override
    public String getElementAt(int i) {
    return lista.get(i);
    }


    @Override
    public int getSize() {
    return lista.size();
    }
    }

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    99
    potresti aggiungere i tag CODE attorno al codice? così resta l'indentazione e si capisce molto meglio

    Comunque prova ad usare un ListSelectionListener come ho detto sopra, oppure aggiungi un bottone e usa un actionListener sul bottone, sempre con le funzioni di prima per agire sulle liste.
    Così come hai fatto tu non hai la gestione degli eventi.

    EDIT: nel titolo parli di JList, qui stai usando un ArrayList, sono cose completamente diverse, dov'è la componente GUI?
    Ultima modifica di glukosio; 28-02-2015 a 16:19

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2013
    Messaggi
    52
    si possono mandare i file qui non ho mai provato?

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    99
    i file si possono allegare, ma il codice è più facile se lo metti nei tag
    codice:
      tipo così, scrivendo CODE prima del codice e /CODE alla fine, tra le parentesi quadre

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2013
    Messaggi
    52
    potresti dirmi come si fa sono davvero niubbo

  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2013
    Messaggi
    52
    dovrei mettere l'istruzione nelle parentesi angolari?

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    99
    no, devi mettere CODE nelle parentesi quadre, poi /CODE di nuovo nelle parentesi quadre, in mezzo ci metti il codice senza parentesi quadre. Come nell'HTML, se non ce la fai guarda le istruzioni che sono nella pagina precedente, lì c'è scritto tutto

  10. #10
    Utente di HTML.it
    Registrato dal
    Nov 2013
    Messaggi
    52
    QUESTA è LA MIA CLASSE CONTROLLER


    codice:
    package controller;
    
    
    import boundary.EditorEpad;
    import database.Database;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.ArrayList;
    import strumenti.CustomListModel;
    
    
    public class ComponentiEpad 
    {
            private static Database numeri = new Database();
            private static Database epad2 = new Database();
    
    
        /**
         * @param args the command line arguments
         */
        public static void main(String[] args) 
        {
            
            numeri.setNomeDatabase("numeri");
            numeri.connetti();
            
            //epad2.setNomeDatabase("epad2");
            //epad2.connetti();
            
            EditorEpad.start(null);
        }
        
        public static CustomListModel listModel(String nome_lista, String nome_tabella) {
            CustomListModel model = null;
            
            ArrayList<String> elementi = new ArrayList<String>();
            
            switch (nome_lista) {
                case "tabella":
                    ResultSet tabella;
                 tabella = numeri.getResultSet("SHOW TABLES");
                 try
                 {
                     while(tabella.next()) 
                     {
                         String str = tabella.getString(1);
                         elementi.add(str);
                         
                     }
                 } catch(SQLException e) 
                 {
                    e.printStackTrace();
                 }
                
                 model = new CustomListModel(elementi);
                break;
                     case "campi":
                    tabella = numeri.getResultSet("DESCRIBE " +nome_tabella+ ";");
                    
                    try
                    {
                        while(tabella.next()) 
                        {
                            String str = tabella.getString(1);
                            elementi.add(str);
                            
                        }
                    } catch(SQLException e) 
                    {
                       e.printStackTrace();
                    }
                   
                    model = new CustomListModel(elementi);
                break;
            }
            
            return model;
        }
        
    }

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.