[Java] Popolare jtable da db Mysql con DefaulTableModel

Daniele Gessa

Nuovo Utente
13 Mar 2015
3
2
0
Il problema come da titolo: ho stabilito correttamente la connessione al db e i vector vD e vP ricevono correttamente i dati, ma non riesco ad inserirli nella jtable: mi visualizza solamente i titoli di colonna ma nessuna riga. Cosa sbaglio? ecco il codice del table model:

HTML:
public class TabModCliPre extends DefaultTableModel {
        
    private int rowstot;
    private final String cli;
    private Object val;
    
    public TabModCliPre(String cli){
        this.cli = cli;
    }
    
    @Override
    public int getRowCount() {
        try {
            Connection connection;
            Class.forName ("com.mysql.jdbc.Driver");
            connection = DriverManager.getConnection("jdbc:mysql://dang83-notebook:3306/Gestipan", "dang83", "08081983");
            String sql = "Select DescProd from TPrezzi where RagSoc=?";
            PreparedStatement stm = connection.prepareStatement(sql);
            stm.setString(1, cli);
            ResultSet id = stm.executeQuery();
            id.isFirst();
            rowstot=0;
            while (id.next()){
                rowstot++;
            }
            stm.close();
            id.close();
            connection.close();
        } 
        catch (ClassNotFoundException | SQLException ex) {
            Logger.getLogger(TabModCliPre.class.getName()).log(Level.SEVERE, null, ex);
        }
        return rowstot;
    }

    @Override
    public int getColumnCount() {
        return 2;
    }
    
    @Override
    public String getColumnName(int col){
        String name = null;
        switch (col){
            case 0:
                name = "Descrizione Prodotto";
                break;
            case 1:
                name = "Prezzo in € esclusa IVA";
                break;
        }
        return name;
    }
    
    @Override
    public Class getColumnClass(int columnIndex){
        switch (columnIndex){
            case 0:
                return String.class;
            case 1:
                return Float.class;
        }
        return Object.class;
    }
    
    @Override
    public boolean isCellEditable(int rowIndex, int columnIndex){
        return columnIndex==1;
    }
    
    @Override
    public Object getValueAt(int rowIndex, int columnIndex) {
        try {
        Connection connection;
        Class.forName ("com.mysql.jdbc.Driver");
        connection = DriverManager.getConnection("jdbc:mysql://dang83-notebook:3306/Gestipan", "dang83", "08081983");
        String sql = "Select DescProd, Prezzo from TPrezzi where RagSoc=?";
        ResultSet id;
        PreparedStatement stm = connection.prepareStatement(sql);
        stm.setString(1, cli);
        id = stm.executeQuery();
        Vector vD = new Vector();
        Vector vP = new Vector();
        id.first();
        while (id.next()){
            vD.add(id.getString(1));
            vP.add(id.getFloat(2));
        }
        switch (columnIndex){
            
            case 0:
                for (rowIndex=0; rowIndex<rowstot; rowIndex++) {
                    val = vD.get(rowIndex);
                    System.out.println(val);
                }
            case 1:
                for (rowIndex=0; rowIndex<rowstot; rowIndex++) {
                    val = vP.get(rowIndex);
                    System.out.println(val);
                }    
        }
        id.close();
        stm.close();
        connection.close();
        }
        catch (ClassNotFoundException | SQLException ex) {
            Logger.getLogger(ModP.class.getName()).log(Level.SEVERE, null, ex);
        }
        return val;
    }
    
    
    @Override
    public void setValueAt(Object val, int rowIndex, int columnIndex) {
               
    }
}

e del frame che lo richiama:

HTML:
public class ModP extends JFrame {
    
    private JComboBox jccliente;
    private JTable jtpp;
    private JPanel north;
    private JPanel center;
    private JPanel south;
    private JButton jbagg;
    private JLabel jlint;
    private String cli;
    private JFrame modp;
    private Connection connection;
    private Vector load;
    private Statement stmt;
    private ResultSet rs;
    private TableModel pctm;
    private JButton jbvis;


    public ModP() throws SQLException, ClassNotFoundException {
        super ("Modifica Prezzi Clienti");
        setBounds(10,35,150,150);
        getContentPane().setLayout(new BorderLayout());
        setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        jccliente = new JComboBox();
        jccliente.setModel(CliModel.model());
        jbvis = new JButton ("Visualizza");
        jbvis.addActionListener(new jcclistener());
        north = new JPanel();
        north.add(jccliente);
        north.add(jbvis);
        jtpp = new JTable();
        DefaultTableModel tabmod = new TabModCliPre(cli);
        jtpp.setModel(tabmod);
        center = new JPanel();
        JScrollPane jsp = new JScrollPane(jtpp);
        center.add(jsp);
       
    //Costruzione pannello principale    
        modp = new JFrame();
        getContentPane().add(north, BorderLayout.NORTH);
        getContentPane().add(center, BorderLayout.CENTER);
        pack();
    }
    
    class jcclistener implements ActionListener {
        @Override
        public void actionPerformed (ActionEvent e) {
            cli = (String) jccliente.getSelectedItem();
            System.out.println(cli);
            
        }
    }
}

Nel frame il listener jcclistener serve teoricamente ad aggiornare la tabella al cambio dei clienti nel jbutton. Insomma voglio che selezionando un cliente mi visualizzi in tabella i prezzi dei prodotti che richiede quel cliente. Poi da questo punto dovrei implementare ulteriormente ma per ora la visualizzazione della tabella è l'obiettivo principale. Grazie per qualsiasi consiglio... Nel frattempo :book::book::book:
 
  • Like
Reactions: ottofonsuppost
Discussioni simili
Autore Titolo Forum Risposte Data
F NetBeans problema creazione progetto Java Windows e Software 0
Z [java] bufferizzare stream audio da mic Java 1
L java + Api di google Javascript 1
A [Cerchiamo] [Retribuito/a] "Java Solution Architect" Offerte e Richieste di Lavoro e/o Collaborazione 1
F Script java elenco alfabetico non funziona Javascript 3
C Serializzazione in java Java 1
M AIUTO ESERCIZIO JAVA Javascript 1
M Ripasso Java Offerte e Richieste di Lavoro e/o Collaborazione 0
F [OFFRO - RETRIBUITO] Sviluppatori JAVA Offerte e Richieste di Lavoro e/o Collaborazione 0
L leggere RGB di un pixel dello schermo in java Java 1
I Creazione programmino JAVA Offerte e Richieste di Lavoro e/o Collaborazione 0
F Aiuto java script Javascript 2
T [Java] tipi generici con esempio pratico Java 1
J File audio in java Java 0
V [JAVA] come integrare un software scritto in java su una pagina web? Java 4
C Java client / server Java 0
F [OFFRO][RETRIBUITO] PROGRAMMATORE JAVA Offerte e Richieste di Lavoro e/o Collaborazione 0
C [Java] testare un metodo con Junit Java 1
A [Java] caricare un url esterno senza utilizzo di iframe Java 0
S [OFFRO] Debug delle tue applicazioni Java Offerte e Richieste di Lavoro e/o Collaborazione 1
L [Java] Aggiungere elementi ad array JSON Java 0
B [Java] Paginazione in risposta HTTP Java 0
A [Java]Date diminuite di un giorno su db MySQL Java 0
K [Java] aiuto switch case Java 1
P [Java] limite destro di un JFrame Java 5
D [Java] far partire JProgressBar all'apertura di un JFrame Java 1
N [java con eclipse]metodo ricorsivo che accetta in ingresso un char e restituisce un int Java 0
A Verifica validità data in Java Java 2
L [Java] Errore json conversione Java 0
Drago73 [Java] leggere/scrivere txt server Java 0
M [Javascript] Java card Java 0
serena.cerutti posizioni aperte: PhP, Java, .Net Offerte e Richieste di Lavoro e/o Collaborazione 0
N [Java]problema jasper report dopo compilazione file .jar Java 0
N [Java] Piccolo jform per calcolo totale da 2 campi i double Java 0
N [Java] jbutton con funzioni Java 2
M [java] esercizio lunghezza array di stringhe Java 0
A [java] problema esercizio Java 0
filograndipad2 Esempi chiari e completi sul funzionamento degli eventi in Java Java 1
Raziel84 [Java] Combinazione elementi matrice Java 0
A [java] problema esercizio array Java 5
L da php a popup java PHP 2
W Piccolo sistema per gestire alcune periferiche, Java o altro linguaggio? Java 8
S Cerco programmatore java Offerte e Richieste di Lavoro e/o Collaborazione 0
Z [Java] Grassetto assente su font incorporato nel pacchetto jar Java 0
O [Java] Lettura da JSON File Java 0
Z [Java] Caratteri distorti e spaziature errate nelle stampe di componenti swing Java 0
W Aiutino per compilare o eseguire un App Java Java 0
S [JAVA] Geocoding Java Java 0
Andy56 Parametri funzioni in Java Java 0
B [Java] Stringhe binarie Java 0

Discussioni simili