Risolto :
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.table.DefaultTableModel;
import javax.swing.JScrollPane;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
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, 614, 556);
getContentPane().setLayout(null);
JScrollPane scrollPane = new JScrollPane();
scrollPane.setBounds(29, 22, 571, 356);
getContentPane().add(scrollPane);
table = new JTable();
scrollPane.setViewportView(table);
JButton btnNewButton = new JButton("Torna al pannello principale");
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
Tabelladati.this.dispose();
}
});
btnNewButton.setBounds(330, 446, 211, 25);
getContentPane().add(btnNewButton);
// 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);//controllo 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("Locazione");
tablemodel.addColumn("Quantità");
tablemodel.setRowCount(tablemodel.getRowCount() + numRighe); //inserisco tante righe quante ne ho nel resulset
// scorre il ResultSet
if(numRighe>0){
//creo tanti array quante colonne ho
int [] cod = new int[numRighe];
String [] des = new String[numRighe];
String [] loc = new String[numRighe];
int [] qua = new int[numRighe];
// Accedo ai valori delle colonne utilizzando il nome dei campi della tabella
for(int i=0 ;i<numRighe ;i++ ){
cod[i] = rst.getInt("codice");
des[i] = rst.getString("descrizione");
loc[i] = rst.getString("locazione");
qua[i] = rst.getInt("Quantità");
/* System.out.println("cod["+i+"]:"+cod[i]); // Prove
System.out.println("des["+i+"]:"+des[i]); // per vedere
System.out.println("loc["+i+"]:"+loc[i]); // se gli array
System.out.println("qua["+i+"]:"+qua[i]); // si caricano
*/
//passo i valori alle celle
// cioe ho la riga i, alla cella riga i colonna "Codice" passo cod[i]
// alla cella riga i colonna "descrizione" passo des[i]
// e cosi via (codice da implementare)
tablemodel.setValueAt(cod[i], i, 0);
tablemodel.setValueAt(des[i], i, 1);
tablemodel.setValueAt(loc[i], i, 2);
tablemodel.setValueAt(qua[i], i, 3);
rst.next();
}
//devo inserire gli array dati nel Jtable
}
}catch(Exception e){
e.printStackTrace();
}
}
// Dopo aver inserito il codice o la locazione nel jframe ricerca
if (contesto=="vis"){
// 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 order by Codice ;");
// recupera il numero di righe del RestultSet
rst.last();
numRighe = rst.getRow();
System.out.println(numRighe);//controllo 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("Locazione");
tablemodel.addColumn("Quantità");
tablemodel.setRowCount(tablemodel.getRowCount() + numRighe);
// scorre il ResultSet
if(numRighe>0){
//creo tanti array quante colonne ho
int [] cod = new int[numRighe];
String [] des = new String[numRighe];
String [] loc = new String[numRighe];
int [] qua = new int[numRighe];
// Accedo ai valori delle colonne utilizzando il nome dei campi della tabella
for(int i=0 ;i<numRighe ;i++ ){
cod[i] = rst.getInt("codice");
des[i] = rst.getString("descrizione");
loc[i] = rst.getString("locazione");
qua[i] = rst.getInt("Quantità");
/* System.out.println("cod["+i+"]:"+cod[i]); // Prove
System.out.println("des["+i+"]:"+des[i]); // per vedere
System.out.println("loc["+i+"]:"+loc[i]); // se gli array
System.out.println("qua["+i+"]:"+qua[i]); // si caricano
*/
//passo i valori alle celle
// cioe ho la riga i, alla cella riga i colonna "Codice" passo cod[i]
// alla cella riga i colonna "descrizione" passo des[i]
// e cosi via (codice da implementare)
tablemodel.setValueAt(cod[i], i, 0);
tablemodel.setValueAt(des[i], i, 1);
tablemodel.setValueAt(loc[i], i, 2);
tablemodel.setValueAt(qua[i], i, 3);
rst.next();
}
//devo inserire gli array dati nel Jtable
}
}catch(Exception e){
e.printStackTrace();
}
}
}
}