Salve ho creato una jtable con 4 colonne e creato una query per prendere dati da un db ,
HO poi creato 4 array (uno per colonna valorizzati con i dati ).
Vorrei un aiuto con l'inserimento nella tabella , allego il codice:
codice:
import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.sql.ResultSet;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.DefaultListModel;
import javax.swing.JTable;
import javax.swing.JSpinner;
import javax.swing.JList;
import javax.swing.table.DefaultTableModel;
import javax.swing.JScrollPane;
public class Tabelladati extends JFrame {
private int codice,quantita;
private String descrizione,locazione;
private JTable table;
private int numRighe;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Tabelladati frame = new Tabelladati("ric",11111111,"F1");
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public Tabelladati(String contesto,int codice,String locazione ) {
this.codice=codice;
this.locazione=locazione;
setTitle("Dati");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 500, 300);
getContentPane().setLayout(null);
JList lista = new JList();
lista.setBounds(8, 552, 480, 200);
getContentPane().add(lista);
JScrollPane scrollPane = new JScrollPane();
scrollPane.setBounds(29, 22, 420, 207);
getContentPane().add(scrollPane);
table = new JTable();
scrollPane.setViewportView(table);
// Dopo aver inserito il codice o la locazione nel jframe ricerca
if (contesto=="ric"){
// mi connetto al db e inserisco i dati nel jlist
try{
ConnettiDb myDb = new ConnettiDb("localhost","Gestionale","root","root");
ResultSet rst = myDb.query("select * from materiale where Codice='"+codice+"' or Locazione='"+locazione+"';");
// recupera il numero di righe del RestultSet
rst.last();
numRighe = rst.getRow();
System.out.println(numRighe);//per controllare se ci sono dati
// riposiziona il cursore di ResultSet all'inizio
rst.first();
// definisce un TableModel implementa il metodo .addElement()
DefaultTableModel tablemodel = new DefaultTableModel();
table.setModel(tablemodel);
tablemodel.addColumn("Codice");
tablemodel.addColumn("Descrizione");
tablemodel.addColumn("Quantità");
tablemodel.addColumn("Locazione");
tablemodel.setRowCount(tablemodel.getRowCount() + (numRighe+1));
// scorre il ResultSet
if(numRighe>0){
// Accedo ai valori delle colonne utilizzando il nome dei campi della tabella
int [] cod = new int[numRighe];
String [] des = new String[numRighe];
String [] loc = new String[numRighe];
int [] qua = new int[numRighe];
do{
for(int i=1 int ;i<=numRighe ;i++ ){
cod[i]= rst.getInt("codice");
des[i] = rst.getString("descrizione");
loc[i] = rst.getString("locazione");
qua[i] = rst.getInt("Quantità");
modelsetvalue(cod[i],1,i); /*
modelsetvalue(des[i],2,i); NON FUNZIONA
modelsetvalue(loc[i],3,i);
modelsetvalue(qua[i],4,i); */
}
}while(rst.next());
//devo inserire gli array dati nel Jtable
}
}catch(Exception e){
e.printStackTrace();
}
}
}
}