Problema con JTable

bircastri

Nuovo Utente
28 Mar 2009
16
0
0
Salve ragazzi avrei bisogno del vostro aiuto.

Ho realizzato una piccola JTabel contenuta in un TableModel, questa tabella in fase di inizializzazione dell'applicazione riceve i dati dal risultato di una Query, fino a qui nulla di particolare funziona perfettamente.

Ho aggiunto il metodo getValueAt che come ben sapete restituisce il contenuto di una cella.
Ora se richiedo il contenuto di una cella inizializzata in fase di esecuzione del programma funziona perfettamente altrimenti se lo faccio su di una cella che era vuota e che io ho aggiuto da tastiera qualcosa non visualizza nulla, come mai????

Certo di un vostro aiuto vi saluto MIchele
 

lespaul

Utente Attivo
30 Lug 2009
91
6
0
www.simplesoft.it
Ciao,
se inserisci un valore nella cella, e questa cella contiene ancora il cursore, cioè non hai cliaccato ad esempio su un'altra cella il valore ancora non viene visualizzato poichè non viene inserito ancora nella
matrice data[][] gestita se non sbaglio nel TableModel. Questo succede poichè per la JTable quella cella è anncora nello stato 'editable'. Prova a deselezionare la cella magari selezionando un'altra cella e vedrai che il valore viene acquisito e facci sapere
 

bircastri

Nuovo Utente
28 Mar 2009
16
0
0
Ho provato già a fare quello che mi hai detto ma nulla. Ho provato a dare invio e fare altre cose ma niente. Anche se modifico una cella il cui valore era stato impostato all'inizio quindi che contiene dati della query mi restituisce sempre il valore originale.
 

demoleus

Nuovo Utente
14 Apr 2010
7
0
0
problema urgente

Salve a tutti...
qualcuno sa dirmi che cosa è msdia80?
stavo guardando nelle cartelle del mio notebook... e ho trovato questo file nella seconda unità del disco rigido... solo soletto... ma prima non c' era...
adesso ... se lo tolgo che succede...? a che serve?

Vorrei sapere inoltre come si fa a creare una nuova discussione in questo forum... ho guardato in giro... ma non riesco a trovare nessuna voce che mi permette di aprirla... er questo ho inserito il mio problema qui...
salute
Demoleus
 

satifal

Utente Attivo
25 Set 2008
522
13
0
Roma
Sul model devi utilizzare il metodo setValueAt() per aggiornare i dati contenuti nella table. Dovresti mettere un listener in ascolto sulla cella che in fase di modifica della stessa invoca il metodo sopracitato.
 

lespaul

Utente Attivo
30 Lug 2009
91
6
0
www.simplesoft.it
bircastri, potresti dirmi in quale contesto stai utilizzando la JTable?? Forse sincronizzate con un database? Perchè in questo caso il discorso è un po piu complesso
 

bircastri

Nuovo Utente
28 Mar 2009
16
0
0
Certo, allora io utilizzo la JTable in questo contesto.

Ho 2 JTable, quando avvio l'applicazione ho su un frame una JTable a destra che contiene tutti gli elementi relativi ad un database. Quindi all'avvio mostra ciò che è contenuto nel database.

La tabella di sinistra è vuota e se faccio doppio clik su un elemento della JTable di destra, esso viene riportato i quella di sinistra tutto qui.
 

lespaul

Utente Attivo
30 Lug 2009
91
6
0
www.simplesoft.it
Quindi mi sembra che il problema riguarda la JTable di sinistra, quando copi i dati con il doppio click, quindi provi a modificarli ma questa modifica non ha effetto giusto??

Puoi postare i frammenti di codice riguardante le due tabelle, in particolare l'action del doppio click??
 

bircastri

Nuovo Utente
28 Mar 2009
16
0
0
CODICE RELATIVO ALLA TABELLA CHE VISUALIZZA LA QUERY DEL DATABASE.

TABELLA DI DESTRA:

Codice:
Vector v = db.eseguiQuery( "SELECT Descrizione FROM Ingredienti;" );
   
    //Inserisco il nome dellA colonna in un vettore 
    Vector vettore = new Vector();
    vettore.add(new String("Ingrediente"));
    //inizializzo una nuova tabella che conterrà gli elementi del vettore
    table = new TableExample(v, vettore);

classe TableExample

Codice:
class TableExample extends JTable {
  	
  	
          private class MyMouseAdapter extends MouseAdapter {
          	
              public void mouseClicked(MouseEvent me) {
            	  
              	TableExample t = (TableExample)me.getSource();
                  if (me.getClickCount() == 2) {
  // facciamo qualcosa... tu potresti ricavare il dato selezionato,
  // e lanciare una nuova query.
                      int row = t.rowAtPoint(me.getPoint());
                      int column = t.columnAtPoint(me.getPoint());
                     Object prova= t.getValueAt(row, column);
                     elementiRicetta = db.eseguiQuery( "SELECT Descrizione FROM Ingredienti WHERE Descrizione = '"+prova+"' ;" );
                     System.out.println(prova);
                     addRow();
                     selectCell(i,0);
                     ricetteTabella.setValueAt(prova,i,0);
                     i++;
                     
                  }
              }

			
          }

Codice:
 rows=new Vector();
    columns= new Vector();
    String[] columnNames = 
    { 
    "Descrizione", 
    "Percentuali",
    "Quantità",
    "Zuccheri",
    "Grassi",
    "S.N.G.L.",
    "Altri Solidi"
    };
    addColumns(columnNames);
    tabModel=new DefaultTableModel();
    tabModel.setDataVector(rows,columns);
    ricetteTabella = new JTable(tabModel);
    jScrollPane2= new JScrollPane(ricetteTabella);


//CON QUESTO PULSANTE CHIAMO LA FUNZIONE

JPanel buttonPanel=new JPanel();
    cmdAdd=new JButton("CalcolaRicetta");
    
    buttonPanel.add(cmdAdd);
    //cmdAdd.addActionListener(this);
    cmdAdd.addActionListener(new ActionListener(){
    	public void actionPerformed(ActionEvent e)
        {
            //bottone che mi consentirà di creare la ricetta
    		calcolaRicetta();
        }

    });


private void calcolaRicetta() {
		// TODO Auto-generated method stub
		int n = ricetteTabella.getRowCount();
		System.out.println("il numero di celle è"+ n);
		for (int y=0; y<=n; y++){
			zuccheri = db.eseguiQuery("SELECT Zuccheri FROM Ingredienti WHERE Descrizione ='Zucchero Semolato' ;");//restituisce solo gli zuccheri	
		    int percTot = 19;
		   //Object perc = ricetteTabella.getValueAt(y, 1);
		   // System.out.println("La percentuale di perc che hai scelto è" + perc);
		    Object perc = ricetteTabella.getValueAt(0, 2);   
		    System.out.println("xyz" +perc);
		    float totale = (19 * 60) ;
		       Object prova2 = totale / 100;
		    System.out.println(prova2);
		    ricetteTabella.setValueAt(prova2, 0, 2);
		    
		}
		
		
	}

Non fate case alle formule che ho ftto nel metodo calcolaRicetta quello che mi interessa è la variabile di tipo object Perc che non restituisce il valore corretto se in quella cella ci inserisco un numero a caso o una lettera insomma un carattere
 
Discussioni simili
Autore Titolo Forum Risposte Data
B Problema con JTable e Vector Java 1
O problema con dvr dahua xvr5116 IP Cam e Videosorveglianza 0
G Problema con Xampp Web Server 1
andrea barletta Problema con miniature comandi Photoshop 0
I problema con alice Posta Elettronica 0
N Problema con position absolute e overflow HTML e CSS 4
L Problema con inner join PHP 11
K [php] Problema con inner join PHP 4
K [PHP] Problema con variabili concatenate. PHP 1
O problema con query PHP 4
I problema con 2 account Posta Elettronica 1
L problema collegamento file css con html HTML e CSS 1
E Problema accesso a file con app sviluppata con MIT APP INVENTOR 2 Sviluppo app per Android 0
M Problema con Try Catch PHP 0
Sergio Unia Problema con gli eventi del mouse su una data table: Javascript 2
T PROBLEMA CON SESSIONI PHP 3
T ALTRO PROBLEMA CON ARRAY PHP PHP 1
R problema con else PHP 0
T PROBLEMA CON ARRAY PHP 8
L problema con query select PHP 2
R Problema query con ricerca id numerico PHP 2
F Problema con risposta PHP 0
S problema con recupero dati tabella mysql PHP 2
Z Problema con il mio tp-l i nk Reti LAN e Wireless 1
L Problema RAM con Tomcat 8 Apache 0
napuleone problema con sort e asort PHP 4
Z Problema con INT MySQL PHP 1
Z Problema database MySQL con XAMPP PHP 0
M Problema con controllo form in real time jQuery 6
Z Problema di sincronizzazione PAYPAL con PHP PHP 1
G Problema con Get page PHP 4
P Problema con require once PHP 6
P Problema con i package Java 1
A Problema login con Safari PHP 14
F INDESIGN: problema esportazione esecutivo per la stampa con foto B/N Webdesign e Grafica 0
S problema con css bootstrap3 HTML e CSS 4
M .load() problema con caricamenti dinamici di js Javascript 0
G Problema con eccessiva nitidezza apertura Camera Raw Photoshop 0
G Problema ------- con Query PHP 1
G Problema con Query PHP 1
T problema con select dinamica con jquery Javascript 0
S Problema con spazi bianchi HTML e CSS 5
A PROBLEMA: insert mysqli con dati Tagsinput Presentati al Forum 0
Tommy03 Problema con z-index HTML e CSS 3
M Problema inserimento parole con apostrofo nel db PHP 5
C Problema con dati meteo xml XML 1
S Problema con infrarossi videocamera IP Cam e Videosorveglianza 1
V Problema con librerie allegro5 c++ C/C++ 1
M Problema con php per calcolo costo percentuale PHP 7
S Problema con mysqli_num_rows PHP 18

Discussioni simili