Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [Java] JTable e celle editabili

    Ho una JTable, come faccio per far si ke possa essere modificata una sua cella? forse è banale ma nn riesco a trovare nulla ke mi possa essere utile nella documentazione... grazie

  2. #2
    Utente di HTML.it L'avatar di morphy79
    Registrato dal
    Jun 2004
    Messaggi
    1,568
    io ad ogni modifica aggiorno il vettore di costruzione della table stessa... se ti può esser utile questo è il codice...

    codice:
    // CLASSE CHE CONTROLLA SE CAMBIO DEI DATI
    	private class MyListener implements TableModelListener { 
    		public void tableChanged(TableModelEvent e) { 
    			
    			// RECUPERO IL VALORE DELLA CELLA
    			int col = e.getColumn(); 
    			int row = e.getFirstRow(); 
    			TableModel model = (TableModel)e.getSource();
    			String valoreInserito = model.getValueAt(row,col).toString();
    			
    			// CONTROLLO VALORE CELLA
    			if(valoreInserito.equals("")){
    				
    				// MESSAGGIO DI ERRORE
    				JOptionPane.showMessageDialog(null,"Valori nulli non consentiti","Errore configurazione connessione",JOptionPane.ERROR_MESSAGE);
    				
    				// RIPRISTINO IL PRECEDENTE VALORE
    				jScrollPane.setViewportView(getJTable());
    				
    			}else{
    				
    				// AGGIORNO IL VETTORE
    				parametriConnessione = new ConnessioneFXS();
    				parametriConnessione.setHost(model.getValueAt(row,0).toString());
    				parametriConnessione.setPort(model.getValueAt(row,1).toString());
    				parametriConnessione.setChannel(model.getValueAt(row,2).toString());
    				parametriConnessione.setQManager(model.getValueAt(row,3).toString());
    				
    				conn.setElementAt(parametriConnessione,row);
    				
    			}
    
    
    		} 
    	}
    odio chi parla di politica..
    anzi vorrei fondare un partito contro tutto ciò

  3. #3
    grazie! ciao

  4. #4
    Per rendere editabili le celle devi impostare un TableModel per la JTable e sovrascrivere il suo metodo isCellEditable ritornado true o false a seconda della posizione in cui ti trovi (la posizione ce l'hai tra i parametri del metodo)
    Ti consiglio di estendere il DefaultTableModel e sovrascrivere il metodo di quello così il resto del comportamento resta uguale
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  5. #5
    capito! grazie ma alla fine ho risolto senza dover editare nulla... grazie cmq. ciao

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.