Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Java - JTable
Forum - Java - JTable

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
killer (Normal User)
Expert


Messaggi: 217
Iscritto: 19/07/2009

Segnala al moderatore
Postato alle 15:23
Mercoledì, 05/08/2009
ciao a tutti... come faccio a   visualizzare i dati  contenuti nel vettore in una JTable?
tenete presente che i dati(gli attributi) vengono memorizzati nel vettore attraverso l'oggetto istanziato della classe base....Ex..ho una classe
public class Animale{}
i cui attributi sono
int numZampe; String genere;

questi attributi li rikiamo dalla classe base istanziando un oggetto e memorizzandoli in un vettore:

Animale a = new Animale();
a.numZampe=this.JTextField1.getText();
a.genere=this.JTextField2.getText();
vettore.addElementAt(a);

bene adesso pero..
non so come settare il model  e visualizzare i dati in un ciclo            
for(conta=0;conta < vettore.size();conta++){} nella JTable...come faccio ? postate il source grazie


Ultima modifica effettuata da killer il 05/08/2009 alle 15:25
PM Quote
Avatar
killer (Normal User)
Expert


Messaggi: 217
Iscritto: 19/07/2009

Segnala al moderatore
Postato alle 19:36
Mercoledì, 05/08/2009
Ekko il source so riuscito a farlo....tutto funziona comunque...la visualizzazione dei dati risulta efficente pero generando degli errori,delle eccezioni le quali non sono riuscito a capire.....
Vi poso il Source cosi se ce qualche errore visibile, mi aiutate forse ho sbagliato in qualche inizializzazione che non riesco ad identificare o qualcosa di piu grave...aiutatemi a risolverlo...

Gli errori(le eccezioni) che risultano sono i(le) seguenti:

Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 3 >= 2
        at java.util.Vector.elementAt(Vector.java:427)
        at javax.swing.table.DefaultTableColumnModel.getColumn(DefaultTableColumnModel.java:277)
        at javax.swing.plaf.basic.BasicTableHeaderUI.paint(BasicTableHeaderUI.java:609)
        at javax.swing.plaf.ComponentUI.update(ComponentUI.java:143)
        at javax.swing.JComponent.paintComponent(JComponent.java:763)
        at javax.swing.JComponent.paint(JComponent.java:1029)
        at javax.swing.JComponent.paintToOffscreen(JComponent.java:5124)
        at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java:1475)
        at javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1406)
        at javax.swing.RepaintManager.paint(RepaintManager.java:1220)
        at javax.swing.JComponent._paintImmediately(JComponent.java:5072)
        at javax.swing.JComponent.paintImmediately(JComponent.java:4882)
        at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:803)
        at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:714)
        at javax.swing.RepaintManager.seqPaintDirtyRegions(RepaintManager.java:694)
        at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:128)
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)


Adesso vi posto il Source cosi magari mi aiutate perche sto impazzendo...non trovo l'errore...grazie...

Codice sorgente - presumibilmente Java

  1. package test;
  2.  
  3. import java.awt.Cursor;
  4. import java.awt.print.PrinterException;
  5. import java.io.FileInputStream;
  6. import java.io.IOException;
  7. import java.io.ObjectInputStream;
  8. import java.util.Vector;
  9. import java.util.logging.Level;
  10. import java.util.logging.Logger;
  11. import javax.swing.table.DefaultTableModel;
  12.  
  13. public class Elenco extends javax.swing.JFrame {
  14.  
  15.    
  16.     public Vector vect = new Vector();
  17.     public Contatti c = new Contatti();
  18.  
  19.     private void leggi() {
  20.         try {
  21.             FileInputStream ff = new FileInputStream("_Contatti_.cnt");
  22.             ObjectInputStream ff_contatti = new ObjectInputStream(ff);
  23.             this.vect = (Vector) ff_contatti.readObject();
  24.             ff.close();
  25.         } catch (IOException e) {
  26.         } catch (Exception e) {
  27.         }
  28.     }
  29.  
  30.     public void chiamaTab() {
  31.  
  32.         DefaultTableModel model = new DefaultTableModel();
  33.         model.addColumn("Pos");
  34.         model.addColumn("Nome");
  35.         model.addColumn("Cognome");
  36.         model.addColumn("Città");
  37.         model.addColumn("Prov");
  38.         model.addColumn("Indirizzo");
  39.         model.addColumn("N°");
  40.         model.addColumn("Tel");
  41.         model.addColumn("Cell");
  42.         model.addColumn("E-Mail");
  43.         model.addColumn("Nazionalità");
  44.         model.addColumn("Sesso");
  45.         model.addColumn("Interessi");
  46.         this.jTableTabella.setModel(model);
  47.  
  48.         int x = 0;
  49.         for (x = 0; x < this.vect.size(); x++) {
  50.             c = (Contatti) this.vect.get(x);
  51.             model.addRow(new Object[]{c.posizione, c.nome, c.cognome, c.citta, c.prov, c.ind, c.num, c.tel, c.cell, c.eMail, c.nazionalita, c.sesso, c.interessi});
  52.            
  53.         }
  54.     }
  55.  
  56.     public void setImg(boolean show) {
  57.         if (show == true) {
  58.             this.jLabelPos.setIcon(new javax.swing.ImageIcon(getClass().getResource("/27.gif")));
  59.         } else {
  60.             this.jLabelPos.setIcon(new javax.swing.ImageIcon(getClass().getResource("")));
  61.  
  62.         }
  63.     }
  64.  
  65.     /** Creates new form Visualizza */
  66.     public Elenco() {
  67.         initComponents();
  68.         this.leggi();
  69.  
  70.     }
  71.  
  72.         private void jMenuItemExitActionPerformed(java.awt.event.ActionEvent evt) {                                              
  73.         this.dispose();
  74.     }                                            
  75.  
  76.     private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {                                          
  77.         Rubrica r = new Rubrica();
  78.         r.setVisible(true);
  79.         this.dispose();
  80.     }                                          
  81.  
  82.     private void jButtonHomePageActionPerformed(java.awt.event.ActionEvent evt) {                                                
  83.         Rubrica r = new Rubrica();
  84.         r.setVisible(true);
  85.         this.dispose();
  86.     }                                              
  87.  
  88.     private void jButtonStampaActionPerformed(java.awt.event.ActionEvent evt) {                                              
  89.         try {
  90.             this.jTableTabella.print();
  91.         } catch (PrinterException ex) {
  92.             Logger.getLogger(Elenco.class.getName()).log(Level.SEVERE, null, ex);
  93.         }
  94.     }                                            
  95.  
  96.     private void jButtonStampaMouseMoved(java.awt.event.MouseEvent evt) {                                        
  97.         this.setCursor(Cursor.HAND_CURSOR);
  98.     }                                        
  99.  
  100.     private void buttonVisualizzaMouseMoved(java.awt.event.MouseEvent evt) {                                            
  101.         this.setCursor(Cursor.HAND_CURSOR);
  102.     }                                          
  103.  
  104.     private void buttonVisualizzaActionPerformed(java.awt.event.ActionEvent evt) {                                                
  105.         Thread t = new Thread(new CaricamentoElenco(5000, this));
  106.         t.start();
  107.     }                                                
  108.  
  109.     private void jButtonHomePageMouseMoved(java.awt.event.MouseEvent evt) {                                          
  110.         this.setCursor(Cursor.HAND_CURSOR);
  111.     }                                          
  112.  
  113.     private void formMouseMoved(java.awt.event.MouseEvent evt) {                                
  114.  
  115.         this.setCursor(Cursor.DEFAULT_CURSOR);
  116.  
  117.     }                              
  118.  
  119.     private void jMenuFileMouseMoved(java.awt.event.MouseEvent evt) {                                    
  120.         this.setCursor(Cursor.HAND_CURSOR);
  121.     }                                    
  122.  
  123.     private void jMenuItemExitMouseMoved(java.awt.event.MouseEvent evt) {                                        
  124.         this.setCursor(Cursor.HAND_CURSOR);
  125.     }                                        
  126.  
  127.     private void jMenuProprietàMouseMoved(java.awt.event.MouseEvent evt) {                                          
  128.         this.setCursor(Cursor.HAND_CURSOR);
  129.     }                                        
  130.  
  131.     private void jMenuItem1MouseMoved(java.awt.event.MouseEvent evt) {                                      
  132.         // TODO add your handling code here:
  133.     }                                    
  134.  
  135.     public static void main(String args[]) {
  136.         java.awt.EventQueue.invokeLater(new Runnable() {
  137.  
  138.             public void run() {
  139.                 new Elenco().setVisible(true);
  140.             }
  141.         });
  142.     }
  143. }
  144.  
  145.  
  146.  
  147. package test;
  148.  
  149. public class CaricamentoElenco extends Thread implements Runnable {
  150.  
  151.     int time;
  152.     Elenco ele=new Elenco();
  153.  
  154.     public CaricamentoElenco(int time, Elenco ele) {
  155.         this.time = time;
  156.         this.ele = ele;
  157.     }
  158.    
  159.     @Override
  160.     public void run() {
  161.         try {
  162.             this.ele.setImg(true);
  163.             Thread.sleep(this.time);
  164.             this.ele.setImg(false);
  165.            
  166.             //Kiama la visualizzazione dei dati nella tabella
  167.             this.ele.chiamaTab();
  168.  
  169.             //Eccezioni sollevate...
  170.             /*
  171.  
  172.              
  173.              */
  174.  
  175.         } catch (InterruptedException ex) {
  176.         }
  177.     }
  178. }



edit by netarrow: aggiunto il tag code

Ultima modifica effettuata da netarrow il 05/08/2009 alle 22:30
PM Quote
Avatar
HEAD (Normal User)
Rookie


Messaggi: 25
Iscritto: 04/08/2009

Segnala al moderatore
Postato alle 21:17
Mercoledì, 05/08/2009
Testo quotato

Postato originariamente da killer:

Ekko il source so riuscito a farlo....tutto funziona comunque...la visualizzazione dei dati risulta efficente pero generando degli errori,delle eccezioni le quali non sono riuscito a capire.....
Vi poso il Source cosi se ce qualche errore visibile, mi aiutate forse ho sbagliato in qualche inizializzazione che non riesco ad identificare o qualcosa di piu grave...aiutatemi a risolverlo...

Gli errori(le eccezioni) che risultano sono i(le) seguenti:

Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 3 >= 2
        at java.util.Vector.elementAt(Vector.java:427)
        at javax.swing.table.DefaultTableColumnModel.getColumn(DefaultTableColumnModel.java:277)
        at javax.swing.plaf.basic.BasicTableHeaderUI.paint(BasicTableHeaderUI.java:609)
        at javax.swing.plaf.ComponentUI.update(ComponentUI.java:143)
        at javax.swing.JComponent.paintComponent(JComponent.java:763)
        at javax.swing.JComponent.paint(JComponent.java:1029)
        at javax.swing.JComponent.paintToOffscreen(JComponent.java:5124)
        at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java:1475)
        at javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1406)
        at javax.swing.RepaintManager.paint(RepaintManager.java:1220)
        at javax.swing.JComponent._paintImmediately(JComponent.java:5072)
        at javax.swing.JComponent.paintImmediately(JComponent.java:4882)
        at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:803)
        at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:714)
        at javax.swing.RepaintManager.seqPaintDirtyRegions(RepaintManager.java:694)
        at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:128)
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)


Adesso vi posto il Source cosi magari mi aiutate perche sto impazzendo...non trovo l'errore...grazie...

[...]






ciao ho dato un'occhiata veloce al tuo codice .. ecco come settare un JTable
non devi fare altro che copiare questo codice ed incollarlo nella tua classe

come metodo metti questo ..funziona  
:k:

Codice sorgente - presumibilmente Java

  1. //questo ti setta il Jtable
  2.  
  3. public void chiamaTab() {
  4.        Vector<String> header = new Vector<String>();
  5.         Vector  model= new Vector();
  6.         
  7. header.add("Pos");
  8. header.add("Nome");
  9. header.add("Cognome");
  10. header.add("Città");
  11. header.add("Prov");
  12. header.add("Indirizzo");
  13. header.add("N°");
  14. header.add("Tel");
  15. header.add("Cell");
  16. header.add("E-Mail");
  17. header.add("Nazionalità");
  18. header.add("Sesso");
  19. header.add("Interessi");
  20.  
  21.  
  22.         int x = 0;
  23.         for (x = 0; x < this.vect.size(); x++) {
  24.   Vector<Object> row = new Vector<Object>();
  25.             c = (Contatti) this.vect.get(x);
  26. row.add(c.posizione);
  27. row.add(c.nome);
  28. row.add( c.cognome);
  29. row.add( c.citta);
  30. row.add( c.prov);
  31. row.add( c.ind);
  32. row.add( c.num);
  33. row.add( c.tel);
  34. row.add( c.cell);
  35. row.add( c.eMail);
  36. row.add( c.nazionalita)
  37. row.add( c.sesso);
  38. row.add( c.interessi);;
  39. model.add(row);         
  40.         }
  41. jTableTabella.setModel(new DefaultTableModel(model, header));
  42.  
  43.     }



ciao :):)

edit by netarrow: aggiunto tag code

Ultima modifica effettuata da netarrow il 05/08/2009 alle 22:32
PM Quote
Avatar
killer (Normal User)
Expert


Messaggi: 217
Iscritto: 19/07/2009

Segnala al moderatore
Postato alle 22:18
Mercoledì, 05/08/2009
Ciao ho provato....non funziona lo stesso....ossia.... l'elenco fuorisce comunque anche con il mio metodo....ma l'eccezione risulta sempre uguale

Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 3 >= 2
        at java.util.Vector.elementAt(Vector.java:427)

dovrebbe essere qualcosa che abbia a che fare con il vettore...qualche poblema...non so...vi prego cercate tutti insieme di risolvermelo...grazie...

PM Quote
Avatar
HEAD (Normal User)
Rookie


Messaggi: 25
Iscritto: 04/08/2009

Segnala al moderatore
Postato alle 22:55
Mercoledì, 05/08/2009
scusa hai detto che la tabella si visualizza con i dati , allora su quale evento genera l'errore..

PM Quote
Avatar
killer (Normal User)
Expert


Messaggi: 217
Iscritto: 19/07/2009

Segnala al moderatore
Postato alle 10:09
Giovedì, 06/08/2009
proprio nel momento in cui  cliccko  sul pulsante  refresh .....( pero ci sto pensando....non e che quell'errore me lo da perche ho utilizzato un JButton della libreria AWT di java e non Swing come ho sempre fatto ?) e un  ipotesi....!!! non saprei se potrebbe centrare qualcosa....
in poke parole io clikko sul pulsante....i dati li visualizza tutti correttamente pero escono fuori sempre le eccezzioni con : Exception ArreyOutIndexOfBounds etc..........

e na cosa stranissima.....
se vuoi ti posto direttamente tutto il mio programma cosi lo provi con netbeans e mi dici ok ?
fammi sapere presto...

ps: niente da fare ho provato anche a sostituire in jButton della libreria AWT con quella swing...niente di niente gli stessi errori ...cazzo..non vorrei che abbia fatto male qualche inizializzazione di vettore nelle principali classi....dai posto direttamente il programma completo senza perder tempo..cosi mi sistemate sto errore maledetto..

ps1: quando  fate funzionare il programma, eseguite la memorizzazione del contatto e dopo attraverso il JMenuBar, cliccate su elenco....si aprira la finestra per visualizzazre i contatti....comunque e inutile provare le altre funzioni perche non ho sviluppato il source...devo ancora finirlo...


killer ha allegato un file: rubrica.zip (592471 bytes)
Clicca qui per scaricare il file

Ultima modifica effettuata da killer il 06/08/2009 alle 10:38
PM Quote
Avatar
HEAD (Normal User)
Rookie


Messaggi: 25
Iscritto: 04/08/2009

Segnala al moderatore
Postato alle 14:25
Giovedì, 06/08/2009
Ciao ho dato un'occhiata al tuo progetto,  ehi!  Ti piacciono le immagini vero? Eh,eh.. era proprio una di quella che mandava in tilt tutto , problema quasi risolto ,
dico quasi perchè dopo un po che andava benissimo, ha incominciato a dare altre eccezzioni, il ciclo for per l'elaborazione del jTable deve i incominciare da 1 e non da 0 altrimenti non legge l'elemento del tuo vector e va in eccezione superando l'array..

adesso va che e una meraviglia.. non da più errori,
devo scappare e tardi..
. ti rinvio il progetto  modificato che non da più eccezioni,,  a stasera se ci sei.. ciao..
  

PS.. poi ti spiegherò più dettagliatamente cosa ho fatto.


HEAD ha allegato un file: rubrica.zip (619850 bytes)
Clicca qui per scaricare il file
PM Quote
Avatar
killer (Normal User)
Expert


Messaggi: 217
Iscritto: 19/07/2009

Segnala al moderatore
Postato alle 15:19
Giovedì, 06/08/2009
gia a me piacerebbe sviluppare un enorme software  in 'possesso' di una grafica spettacolare colma di immagini statiche e animazioni....il tutto gestito con i Thread...
in ogni caso...fammi sapere..ci sono sta sera...magari mi dai in privato non so se si puo in contact di msn.. cosi magari in msn riusciamo insieme a risolvere errori nei vari progetti...
grazie ancora......
a sta sera

Ultima modifica effettuata da killer il 06/08/2009 alle 15:24
PM Quote
Avatar
killer (Normal User)
Expert


Messaggi: 217
Iscritto: 19/07/2009

Segnala al moderatore
Postato alle 9:26
Venerdì, 07/08/2009
Aiuto ....i problemi della jTable nn riesco ancora a risolverli...
la visualizzazione dei dati funziona perfettamente  ma risultano sempre le eccezioni..
Aprite il mio programma che vi allego ...e ditemi perche durante la visualizzazione dell'elenco risultano eccezioni..grazie ancora a tutti quanti per il notevole aiuto che mi state dando...


killer ha allegato un file: rubrica.zip (855643 bytes)
Clicca qui per scaricare il file

Ultima modifica effettuata da killer il 07/08/2009 alle 9:38
PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo