Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Hybrid View

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2013
    Messaggi
    52

    aggiornare il popolamento di una jList

    ciao ragazzi, ho un problema, vorrei riempire una jList, praticamente sto in un jFrame e dopo che premo un bottone vorrei che mi si aggiornasse/popolasse la jList di un altro jFrame, ho notoato che questa cosa mi riesce se mi chiamo il metodo nel costruttore ma io vorrei che la jList si riempisse alla pressione del bottone
    grazie in anicipo

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da NicVeg Visualizza il messaggio
    ciao ragazzi, ho un problema, vorrei riempire una jList, praticamente sto in un jFrame e dopo che premo un bottone vorrei che mi si aggiornasse/popolasse la jList di un altro jFrame, ho notoato che questa cosa mi riesce se mi chiamo il metodo nel costruttore ma io vorrei che la jList si riempisse alla pressione del bottone
    Troppo generica e vaga come questione ... bisogna vedere come è la architettura e il design delle tue classi, cosa "sanno" una dell'altra, ecc...

    Ammesso di essere in una classe che estende JFrame e avendo a disposizione un reference es. frame2, la cosa buona e "pulita" che si può fare è fare in modo che la classe del secondo frame metta a disposizione un metodo pubblico es. aggiungi che permette di aggiungere un valore nella sua lista, mantenendo nascosti i dettagli della lista.
    Ovvero, evita di "esporre" la lista direttamente dal secondo frame o robe del genere.

    Ripeto comunque che tutto dipende dal "design" che hai realizzato ...
    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
    Nov 2013
    Messaggi
    52
    praticamente vorrei che premendo il tasto generaCC vorrei che i valori di elenco tabelle (prima immagine)

    1.jpg
    si riempissero nella jList Fact tabelle (seconda immagine)

    2.jpg
    praticamente ho un metodo che si chiama aggiornalista che fa mi riempie la tabella della prima immagine implementata cosi:
    codice:
     public static void aggiorna_lista() {
            
            jListTabelle.setModel(ComponentiEpad.listModel("tabella", null));
           
         }
    vorrei che facesse la stessa cosa nella seconda interfaccio, ho implementato lo stesso metodo anche nella seconda interfaccia ma non mi compare niente, mi compare solo se il metodo lo richiamo dal costruttore solo che cosi mi compare sempre mentre io voglio che mi compare alla pressione del bottone generaCC, non so se sono stato chiaro se serve qualche altro pezzo di codice per capire bene ti mando altro non so

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da NicVeg Visualizza il messaggio
    codice:
     public static void aggiorna_lista() {
            
            jListTabelle.setModel(ComponentiEpad.listModel("tabella", null));
           
         }
    Comunque è ancora vaga come questione, senza vedere il resto. Quello che è certo è che l'uso di static e anche la invocazione di listModel che presumo sia di nuovo static (lo invochi su una classe per quanto posso immaginare dal nome), non sono affatto un buon segno.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2013
    Messaggi
    52
    si infatti faccio cosi nel tasto generaCC mi richiamo il metodo facendo nomeClasse.aggiorna_list(); è sbagliato non so come fare sto leggendo un sacco di forum ma non trovo niente, vuoi che mando qualche altra cosa

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Guarda .. purtroppo non saprei come aiutarti in questo momento, perché bisognerebbe vedere bene tutto il resto del codice dove comunque, molto probabilmente, c'è anche un problema di impostazione iniziale a livello architetturale.
    Cerca magari di "tamponare" il problema come puoi e riesci ma .... tieni presente in seguito che mettere metodi statici di qua e di là per passare dati come fa comodo ... non è la "buona" soluzione, detto in generale.
    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
    Registrato dal
    Nov 2013
    Messaggi
    52
    Non potresti indicarmi qualcosa, cosa cercare perche non so proprio come risolvere questo problema

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da NicVeg Visualizza il messaggio
    Non potresti indicarmi qualcosa, cosa cercare perche non so proprio come risolvere questo problema
    Queste cose si risolvono "a monte" ... ovvero avendo chiaro come effettuare il design giusto delle classi, come separare i concetti e nascondere bene i dettagli interni delle classi. Insomma, le solite basi della OOP.

    Comunque puoi provare a spiegare meglio, a parole, il tuo contesto: cosa fanno quelle due finestre, in che relazione sono (una delle due apre l'altra?), quali operazioni devono fare. Magari si può provare a ragionare su queste cose.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2013
    Messaggi
    52
    EditorAdmin

    codice:
    public class EditorAdmin extends javax.swing.JFrame
    {   
        public EditorAdmin() throws SQLException 
        {   
            setResizable(false);
            initComponents();
            ini();
            aggiorna_lista();
            aggiorna_tabella();
        }
        
        DefaultTableModel model = new DefaultTableModel(new Object[] { "Tabella", "Campo" }, 0)
    	{
                private static final long serialVersionUID = 1L;
                public boolean isCellEditable(int row, int column) 
                {   
                    //all cells false
                    return false;
                }
    	};
        
        ComponentiEpad sessione = new ComponentiEpad();  
        Generatore myGen = new Generatore();
        private String tabella;
    
       private void jButtonChiudiActionPerformed(java.awt.event.ActionEvent evt) {                                              
           
           EditorEpad.start(null);
           dispose();
        }                                             
    
    
        private void jListTabelleValueChanged(javax.swing.event.ListSelectionEvent evt) {                                          
               tabella = (String) jListTabelle.getSelectedValue(); //restituisce l'item selezionato
               jListCampi.setModel(ComponentiEpad.listModel("campi", tabella)); 
        }                                         
    
    
        private void jListCampiValueChanged(javax.swing.event.ListSelectionEvent evt) {
         
        }
        
        private void jButtonGeneraCCActionPerformed(java.awt.event.ActionEvent evt) {                                                
            String nome = "";
            int[] selectedIx = jListCampi.getSelectedIndices();
            Record campoSel[] = new Record[selectedIx.length];
            
            for (int i = 0; i < selectedIx.length; i++) 
            {
                campoSel[i] = new Record();
                campoSel[i].nome = (String) (jListCampi.getModel().getElementAt(selectedIx[i]));
                System.out.println("camposel = "+campoSel[i].nome);
                nome += campoSel[i].nome + "\n";
            }
        
        int n;
            n = JOptionPane.showConfirmDialog(
                    null,
                    "Sono stati selezionati i seguenti campi:\n" + nome + "Continuare?",
                    "Generazione CC",
                    JOptionPane.YES_NO_OPTION);
            
          if (n == JOptionPane.YES_OPTION)
          {
              double inizio = System.currentTimeMillis();
                try {
                    myGen.generaCC(sessione.getGrado(), tabella, campoSel);
                } catch (SQLException ex) {
                    Logger.getLogger(EditorAdmin.class.getName()).log(Level.SEVERE, null, ex);
                }
              double fine = System.currentTimeMillis();
              double durata = (fine - inizio) / 1000;
              System.out.println("durata: " +durata);
              JOptionPane.showMessageDialog(null,
                      "Calcolo concluso",
                      "Generazione CC",
                      JOptionPane.INFORMATION_MESSAGE);
          }
             
            for (int i = 0; i < selectedIx.length; i++) 
            {
                String[] tab = {tabella, campoSel[i].nome};
                model.addRow(tab);
                jTableCoefficienti.setModel(model);
            }
            
            EditorEpad.aggiorna_lista();
        }                                               
      
        
        private void jButtonEliminaActionPerformed(java.awt.event.ActionEvent evt) {                                               
    
    
               Object selection = jTableCoefficienti.getValueAt(jTableCoefficienti.getSelectedRow(), 0);
            
            int n;
            n = JOptionPane.showConfirmDialog(
                    null,
                    "Vuoi cancellare i CC calcolati sulla tabella " + selection + "?",
                    "Elimina",
                    JOptionPane.YES_NO_OPTION);   
            
            if (n == JOptionPane.YES_OPTION)
                {
                  myGen.eliminaCC((String) selection);
                }
            try {    
                aggiorna_tabella();
            } catch (SQLException ex) {
                Logger.getLogger(EditorAdmin.class.getName()).log(Level.SEVERE, null, ex);
            }
            
            //EditorEpad.aggiorna_lista();
        }                                              
        
        public static void start(String args[]) {
           
            java.awt.EventQueue.invokeLater(new Runnable() {
                public void run() {
                    try {
                        new EditorAdmin().setVisible(true);
                    } catch (SQLException ex) {
                        Logger.getLogger(EditorAdmin.class.getName()).log(Level.SEVERE, null, ex);
                    }
                }
            });
        }
        
         private void ini() 
         {  
            jTableCoefficienti.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
            jTableCoefficienti.setAutoCreateRowSorter(true);
            jTableCoefficienti.setNextFocusableComponent(jTableCoefficienti);
            jTableCoefficienti.getTableHeader().setReorderingAllowed(false);
            jScrollPane3.setViewportView(jTableCoefficienti);
            
            jListTabelle.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
            jListCampi.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
         }
         
         private void aggiorna_lista() {
             jListTabelle.setModel(ComponentiEpad.listModel("tabella", null));
         }
         
         private void aggiorna_tabella() throws SQLException {
             jTableCoefficienti.setModel( (TableModel) ComponentiEpad.tableModel("campo"));
         }

  10. #10
    Utente di HTML.it
    Registrato dal
    Nov 2013
    Messaggi
    52
    EditorEpad

    codice:
    ublic class EditorEpad extends javax.swing.JFrame {
      
        public EditorEpad() {
            setResizable(false);
            initComponents();
            ini();
        }
        private String tabella;
        private String campi;
        
        Reporting interr = new Reporting();
        ComponentiEpad sessione = new ComponentiEpad(); 
    private void jListCampiValueChanged(javax.swing.event.ListSelectionEvent evt) {                                        
            jComboBoxCampo.removeAllItems();
            campi = (String) jListCampi.getSelectedValue(); //restituisce l'item selezionato
            int min = 1;
            int max = 10;
            
            int[] selectedIx = jListCampi.getSelectedIndices();
            Record campoSel[] = new Record[selectedIx.length];
            
            DefaultTableModel model = new DefaultTableModel(new Object[] { "Campo", "Minimo", "Massimo" }, 0);   
           
             for (int i = 0; i < selectedIx.length; i++) 
            {
                campoSel[i] = new Record();
                campoSel[i].nome = (String) (jListCampi.getModel().getElementAt(selectedIx[i]));
                jComboBoxCampo.addItem(campoSel[i].nome);
                jTextRighe.setText(Integer.toString(campoSel[i].minimo)); 
                
                String[] tab = {campoSel[i].nome, "1", "10"};
                model.addRow(tab);
                jTableSelezione.setModel(model); 
                
                jTextMinimo.setText((Integer.toString((min))));
                jTextMassimo.setText((Integer.toString((max)))); 
            }
            
                
        }                                       
    
    
        private void jComboBoxFunzioneActionPerformed(java.awt.event.ActionEvent evt) {                                                  
            // TODO add your handling code here:
        }                                                 
    
    
        private void radioApprossimatoActionPerformed(java.awt.event.ActionEvent evt) {                                                  
            jTextGrado.setText(Integer.toString(sessione.getGrado()));
        }                                                 
    
    
        private void jComboBoxCampoActionPerformed(java.awt.event.ActionEvent evt) {                                               
            // TODO add your handling code here:
        }                                              
    
    
        private void jButtonEseguiActionPerformed(java.awt.event.ActionEvent evt) {                                              
          jTextValore.setText("");
          jTextDurata.setText("");
          
          if (radioApprossimato.isSelected())
          {
            interr.tipo = "approssimata";  
            System.out.println(interr.tipo);
          }
          
          if (radioReale.isSelected())
          {
              interr.tipo = "reale";
              System.out.println(interr.tipo);
          }
          
        }                                             
         public static void aggiorna_lista() {
             jListTabelle.setModel(ComponentiEpad.listModel("tabella", null));
         }  
        
        private void ini() {
            jListTabelle.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
            jListCampi.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
        }
         
        public static void start(String args[]) {
            /* Set the Nimbus look and feel */
            //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
            /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
             * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
             */
            try {
                for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                    if ("Nimbus".equals(info.getName())) {
                        javax.swing.UIManager.setLookAndFeel(info.getClassName());
                        break;
                    }
                }
            } catch (ClassNotFoundException ex) {
                java.util.logging.Logger.getLogger(EditorEpad.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
            } catch (InstantiationException ex) {
                java.util.logging.Logger.getLogger(EditorEpad.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
            } catch (IllegalAccessException ex) {
                java.util.logging.Logger.getLogger(EditorEpad.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
            } catch (javax.swing.UnsupportedLookAndFeelException ex) {
                java.util.logging.Logger.getLogger(EditorEpad.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
            }
            //</editor-fold>
            //</editor-fold>
            
            /* Create and display the form */
            java.awt.EventQueue.invokeLater(new Runnable() {
                public void run() {
                    new EditorEpad().setVisible(true);
                    
                }
            });
        }

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 © 2026 vBulletin Solutions, Inc. All rights reserved.