Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2004
    Messaggi
    99

    Modifica righe JTable...

    Ciao a tutti non riesco a capire come poter aggiungere dati alla mia JTable dopo averla aggiunta.

    Vorrei popolare riga x riga con .setValueAs(valore,riga,colonna) ma il metodo non funziona se non nel costruttore.


    grazie...
    se mi chiedeste chi è per me un vero amico vi risponderei che è una persona che io considero alla pari di me.

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2004
    Messaggi
    99
    Mi spiego meglio: da ActionListener su un bottone, il comando table.setValueAs non viene riconosciuto... non so come aggirare il problema...
    se mi chiedeste chi è per me un vero amico vi risponderei che è una persona che io considero alla pari di me.

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    147
    Prova innanzitutto a chiamare la funzione col suo giusto nome... setValueAt

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2004
    Messaggi
    99
    senz'altro....anche se il problema purtroppo permane...
    se mi chiedeste chi è per me un vero amico vi risponderei che è una persona che io considero alla pari di me.

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    147
    E allora penso che il problema non sia la funzione, bensì la visibilità della tabella... Se hai gestito la pressione del bottone mediante una inner class anonima, la jtable deve essere dichiarata o come attributo della classe o come final.

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2004
    Messaggi
    99
    mmm ho gestito la tabella così, e di seguito si vede l'action listener...c'è un Vettore nel quale faccio iterazione:

    codice:
     
      String[] columnNames = {"pippo","pluto","paperino","paperoga"};  
    	
    	  int rowCount = 100;  
    	
    	  DefaultTableModel tableModel = new DefaultTableModel(columnNames, rowCount);  
     
    
    		JTable table = new JTable(tableModel); 
    		 
    		JScrollPane scrollPane = new JScrollPane(table);
    		add(scrollPane, BorderLayout.CENTER); 
    	    table.setVisible(true);
    		
    		table.setBackground(Color.white);
    		    
    		//Istanzia Handler per ActionListener
    		theHandler handler = new theHandler(); 
    		
    		//Collegamento ActionListener ad handler	 
    		button1.addActionListener(handler);
    	}
     
    
    	private class theHandler implements ActionListener 
    	{
    		     
    	public void actionPerformed(ActionEvent event)  
    	
    	{
    		
    		if(event.getSource()==button1) 
    			
    		{	
    			try{
    			
    			Vector<testEntity> vtestEntities =FileReadertest.gettestEntityCollection("xxxxx.txt");				
    			Iterator<test> i = vtestEntities.iterator();
    			
    			
    			while(i.hasNext())
    			{
    			 
    //qui vorrei popolare la JTable ma non riesco a richiamarla....
    
    			}
    			  
    					 
    		}
     
    		catch (Exception e) 
    		{ 
    				e.printStackTrace();
    				JOptionPane.showMessageDialog(null,"Eccezione : " + e.getMessage());
    				 
    		}	
    			
    		}
    	}
    	
    }
    se mi chiedeste chi è per me un vero amico vi risponderei che è una persona che io considero alla pari di me.

  7. #7
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Il problema dipende dal fatto che tu stai dichiarando la JTable all'interno di un metodo... se la dichiari dentro ad un metodo, essa vive (o, comunque, è raggiungibile) solo dentro a quel metodo.

    Ricorda che i componenti principali devono sempre essere dichiarati a livello di classe, per evitare problemi di raggiungibilità: sposta la dichiarazione della JTable fuori dai metodi... poi istanziala dove vuoi.

    codice:
    public class TuaClasse ... {
       ...
       // Dichiaro tutti i componenti
       private JTable table;
       ...
    
       public TuaClasse() {
    
          // Sono nel costruttore, ma potrei essere in un metodo qualunque
          table = new JTable( ... );
          ...
    
       }

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2004
    Messaggi
    99
    Grazie...hai ragione..

    farò TESORO di questa semplice ma basilare pratica
    se mi chiedeste chi è per me un vero amico vi risponderei che è una persona che io considero alla pari di me.

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.