Visualizzazione dei risultati da 1 a 3 su 3

Visualizzazione discussione

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2018
    Messaggi
    18

    Alcuni problemi con la jtable

    Salve a tutti ragazzi. Sto sviluppando un gestionale da portare in un esame universitario e sia io che il mio collega abbiamo alcuni problemi nell'implementare specifiche funzioni.
    Mentre lancio il programma mi connetto ad un db di mysql server con un utente senza password che ha il solo attributo di select. Ho una tabbed pane che al click mi cambia la mia jtable. Il primo problema è che il mio prof. mi ha consigliato l'uso di sql server in quanto avrei avuto una result set updatable tuttavia il return di
    codice:
    ResultSet.CONCUR_UPDATABLE 
    
    è falso dovrei settare qualcosa?
    La prima implementazione che vorrei fare è la possibilità di aggiungere un elemento direttamente dalla jtable. Quindi ho un pulsante che mi crea una riga null che è completamente vuota. Come faccio a prelevare il testo da questa riga ed eseguire la query per inserirla nel db?
    Inserisco il codice della classe Mytabe grazie in anticipo per l'aiuto.
    codice:
    public class MyTable extends JTable {
    
        private DefaultTableModel dataModel;
    
        public MyTable(Gui gui) {
            super();
    dataModel = new DefaultTableModel() {
                @Override
    public boolean isCellEditable(int row, int column) {
                    return gui.isAdmin();
    }
            };
    setModel(dataModel);
    }
    
        public void add(){
            dataModel.addRow((Object[]) null);
    dataModel.fireTableDataChanged();
    
    }
    
        public void update(ResultSet resultSet) throws SQLException {
            clear();
    //create an array of column names
    ResultSetMetaData mdata = resultSet.getMetaData();
            int colCount = mdata.getColumnCount();
    String[] colNames = new String[colCount];
            for (int i = 1; i <= colCount; i++) {
                colNames[i - 1] = mdata.getColumnName(i);
    }
            dataModel.setColumnIdentifiers(colNames);
    
    
    //now populate the data
    while (resultSet.next()) {
                Object[] rowData = new Object[colCount];
                for (int i = 1; i <= colCount; i++) {
                    switch (mdata.getColumnClassName(i)) {
                        case "java.sql.Date":
                            rowData[i - 1] = resultSet.getDate(i);
                            break;
                        case "java.lang.Integer":
                            rowData[i - 1] = resultSet.getInt(i);
                            break;
                        case "java.lang.Double":
                            rowData[i - 1] = resultSet.getDouble(i);
                            break;
                        default:
                            rowData[i - 1] = resultSet.getString(i);
                            break;
    }
                }
                dataModel.addRow(rowData);
    }
    
        }
    
        public void clear(){
            dataModel.getDataVector().removeAllElements();
    dataModel.fireTableDataChanged();
    }
    
    }
    Ultima modifica di felx; 25-01-2020 a 21:05

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.