Visualizzazione dei risultati da 1 a 2 su 2

Discussione: set JTable

Hybrid View

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2013
    Messaggi
    65

    set JTable

    ciao a tutti,
    non riesco ad andare avanti su una cosa che magari è banale, ma su cui ci sono piantato da un po. Allora io ho una jtable composta da 9 colonne. La colonna 2 contiene delle date, mentre le colonne 5, 7 e 9 contengono degli importi in euro. L'ultima riga della tabella deve contenere i totali delle colonne 5, 7 e 9. La mia tabella la carico in questo modo:

    codice:
    String query = "select * from Fattura";
    PreparedStatement pst = connection.prepareStatement(query);
    ResultSet rs = pst.executeQuery();
    table.setModel(DbUtils.resultSetToTableModel(rs));
    A seguire formatto le colonne della tabella in questo modo:

    codice:
    TableColumnModel tcm = table.getColumnModel();  
    NumberFormat format = new DecimalFormat("#,###.00"); 
    format.setMaximumFractionDigits(2);  
    tcm.getColumn(4).setCellRenderer( new NumberRenderer( format ) ); 
    tcm.getColumn(6).setCellRenderer( new NumberRenderer( format ) ); 
    tcm.getColumn(8).setCellRenderer( new NumberRenderer( format ) ); 
    	
    table.getColumnModel().getColumn(1).setCellRenderer(new DateRenderer());
    			
    //			set TOTAL last row
    DefaultTableModel model = (DefaultTableModel)table.getModel();
    model.addRow(new Object[] {"TOTALE", null, "", "", getSumColumn(4), "", getSumColumn(6), "", getSumColumn(8)});
    Infine vorrei soltanto che l'ultima riga, quella dei totali sia in grassetto, o un colore differente. Ho provato diverse strade ma niente. Allora ho utilizzato la classe:

    codice:
    Class MyRenderClass implements TableCellRenderer {
    	
    public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected,
    	boolean hasFocus, int row, int column) {
    andando a settare l'ultima riga. Però il problema è che setta l'ultima riga a bold, tranne le colonne 1, 4, 6 e 8 che ho modificato... Qualche idea please?????? Grazie milleeeeeee....

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2013
    Messaggi
    65
    diciamo che in effetti utilizzare DbUtils non ha molto senso... Ho per ora risolto creando la tabella direttamente

    codice:
    DefaultTableModel model = new DefaultTableModel();
    model.setColumnIdentifiers(columnNames);
    table = new JTable();
    table.setModel(model);
    			
    String query = "select * from tabella";
    PreparedStatement pst = connection.prepareStatement(query);
    ResultSet rs = pst.executeQuery();
    recupero quinsi tutti i valori della select e li inserisco in tabella tramite il ciclo while

    codice:
    while(rs.next()) {
    strNumero=rs.getString("Numero");
    ...
    }
    quindi uscito dal while inserisco una nuova riga contenente i totali ed infine posso settare il grassetto sull'ultima riga come i font tramite

    class provaRenderer implements TableCellRenderer { ....

    Questo più o meno è il procedimento a cui sono arrivato e funziona tutto... se però c'è qualche idea migliore sono interessato :-P

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.