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

Discussione: [java] Somma in Jtable

  1. #1

    [java] Somma in Jtable

    ciao raga

    dovrei sommare il contenuto di 7 colonne di una tabella righa per righa e i risultati inserili in una nuova colonna con l'intestazione della prima colonna.

    allora per l'intestazione ci sono riuscito, ora mi serve la somma degli elementi per creare la nuova colonna.

    posto un po di coice:

    codice:
    public void sumWeek (int x){
    		TableColumn tc1 = mode.getColumn(x);
    		TableColumn tc2 = mode.getColumn(x+1);
    		TableColumn tc3 = mode.getColumn(x+2);
    		TableColumn tc4 = mode.getColumn(x+3);
    		TableColumn tc5 = mode.getColumn(x+4);
    		TableColumn tc6 = mode.getColumn(x+5);
    		TableColumn tc7 = mode.getColumn(x+6);
    		TableColumn nuova = new TableColumn();
    		nuova.setHeaderValue(tc1.getHeaderValue());
    		for(int z=0;z<table.getRowCount();z++){
    			.......
    		}
    		mode.addColumn(nuova);
    	}
    dove l'intero x è l'indice della prima colonna da ui deve partire il calcolo e mode è il TableColumnModel.

    ora io volevo creare una nuova colonna con TableColumn è aggiugerci gli elementi una volta sommati dalle altre colonne.

    Approccio sbagiato?

    ciao grazie

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [java] Somma in Jtable

    Originariamente inviato da fcorsa
    ora io volevo creare una nuova colonna con TableColumn è aggiugerci gli elementi una volta sommati dalle altre colonne.

    Approccio sbagiato?
    Sì, è il table model che deve "esporre" una colonna in più. E non so quale table model hai usato ....
    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
    Feb 2007
    Messaggi
    4,157

    Re: Re: [java] Somma in Jtable

    Originariamente inviato da andbin
    Sì, è il table model che deve "esporre" una colonna in più. E non so quale table model hai usato ....
    scusa la mia domanda (forse scema), ma stai supponendo che effettivamente quello che vedi alla colonna x lo prelevi alla colonna x della struttura del table model, quindi stai supponendo che un eventuale ordinamento della vista si riflette sul table model, corretto?

    Perché mi sono trovata a fare un sommatore (somme parziali), ma prevedendo ordinamento su ogni colonna e dovendo mantenere consistenza della somma, visto che la somma non era altro che un valore che riguardava solo la vista, ho prelevato il valore direttamente dalla vista e non dal table model (ora non ricordo il giro perfetto).
    Ovviamente ogni rivalidazione del modello prevedeva un ricalcolo delle somme (mica si possono fare miracoli)

  4. #4
    ciao andbin

    il problema non è la somma delle celle , ma proprio quello di inserirle in una colonna.

    ecco il mio Table Model :

    premetto che è una tabella generata da un ile excel.

    codice:
    class ExcelTableModel extends AbstractTableModel {
    		Sheet sheet3;
    		
    		public ExcelTableModel(Sheet sheet2) {
    			sheet3=sheet2;
    		}
    //metodo che crea il nome della colonna 
    		public String getColumnName(int c){
    			 return sheet3.getCell(c,0).getContents();
    		}
    //metodo che ritorna il numero di colonne che è = 1
    		public int getColumnCount() {
    			return sheet3.getColumns();
    		}
    //metodo che ritorna il numero di righe della colonna che è uguale al numero di specifiche mancanti nella lista
    		public int getRowCount() {
    			return sheet3.getRows()-1;
    		}
    		//metodo che aggiunge gli elementi alle celle(cioe le stringhe)
    		//indice colonna non viene inserito perche e a una sola colonna
    		public Object getValueAt(int indiceRiga, int indiceColonna) {
    			String riga =""+sheet3.getCell(indiceColonna,indiceRiga+1).getContents();
    			return riga;
    		}	
    	}
    ciao grazie

  5. #5
    p.s. non notare i commenti che sono sballati

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    devi prevedere che ci sia un'altra colonna nel table model che contenga le somme (cioè tu associ al modello una colonna in più che prende un double che di default ha valore zero e che contiene la somma)

  7. #7
    quindi dovrei prevedere la colonna in aggiunta , ma senza farla visualizzare.

    ma non è possibile aggiungerla quando ti serve ?

    io sono riuscito ad aggiungerla con l'header che voglio, il mio problema è quello di aggiungere le celle alla colonna aggiunta.

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    l'header è una cosa (è l'intestazione della tabella e può essere specificata a parte), qui tu vuoi qualcosa che rappresenti un valore. Ora devi dire al table model (devi prepararlo) a leggere quel valore, ergo devi aggiungere una colonna.
    Altrimenti vedi la somma come una riga (con particolari valori per gli altri campi)

  9. #9
    ok ci provo!!

  10. #10
    in base al mio model che ho generato da un foglio excel, come faccio ad aggiungerci una colonna vuota?

    il model l'ho postato prima.

    grazie mille

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.