codice:
import java.awt.BorderLayout;
import javax.swing.JPanel;
import javax.swing.JFrame;
import java.awt.Dimension;
import javax.swing.JLabel;
import java.awt.Rectangle;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.Font;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Vector;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import javax.swing.JOptionPane;
public class FrameFornitore extends JFrame {
private static final long serialVersionUID = 1L;
private JPanel jContentPane = null;
private JLabel Lpiva = null;
private JTextField Tpiva = null;
private JTextField Tdescrizione = null;
private JLabel Ldescrizione = null;
private JLabel Lprodotto = null;
private JTextField Tprodotto = null;
private JButton Bins = null;
private JScrollPane jScrollPane = null;
private JTable jTable = null;
private DefaultTableModel modello=null;
private Vector righe;
private Vector righe_app = new Vector(); // @jve:decl-index=0:
private Vector colonne; // @jve:decl-index=0:
private Connection connection;
private Query q = null; // @jve:decl-index=0:
private JButton Bcancella = null;
private JButton Bupdate = null;
private int riga_selezionata=-1;
private Vector nuovi_valori = new Vector(); // @jve:decl-index=0:
/**
* This is the default constructor
*/
public FrameFornitore(Connection c) {
super();
connection=c;
initialize();
}
/**
* This method initializes this
*
* @return void
*/
private void initialize() {
this.setSize(625, 307);
this.setContentPane(getJContentPane());
this.setTitle("Fornitori");
this.setVisible(true);
this.addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent e) {
dispose();
}
});
}
/**
* This method initializes jContentPane
*
* @return javax.swing.JPanel
*/
private JPanel getJContentPane() {
if (jContentPane == null) {
Lprodotto = new JLabel();
Lprodotto.setBounds(new Rectangle(428, 15, 73, 16));
Lprodotto.setText("Prodotto");
Ldescrizione = new JLabel();
Ldescrizione.setBounds(new Rectangle(226, 15, 111, 16));
Ldescrizione.setText("Denominazione");
Lpiva = new JLabel();
Lpiva.setBounds(new Rectangle(10, 15, 83, 16));
Lpiva.setText("Partita Iva");
jContentPane = new JPanel();
jContentPane.setLayout(null);
jContentPane.add(Lpiva, null);
jContentPane.add(getTpiva(), null);
jContentPane.add(getTdescrizione(), null);
jContentPane.add(Ldescrizione, null);
jContentPane.add(Lprodotto, null);
jContentPane.add(getTprodotto(), null);
jContentPane.add(getBins(), null);
jContentPane.add(getJScrollPane(), null);
jContentPane.add(getBcancella(), null);
jContentPane.add(getBupdate(), null);
}
return jContentPane;
}
/**
* This method initializes Tpiva
*
* @return javax.swing.JTextField
*/
private JTextField getTpiva() {
if (Tpiva == null) {
Tpiva = new JTextField();
Tpiva.setBounds(new Rectangle(10, 39, 180, 20));
}
return Tpiva;
}
/**
* This method initializes Tdescrizione
*
* @return javax.swing.JTextField
*/
private JTextField getTdescrizione() {
if (Tdescrizione == null) {
Tdescrizione = new JTextField();
Tdescrizione.setBounds(new Rectangle(225, 39, 181, 20));
}
return Tdescrizione;
}
/**
* This method initializes Tprodotto
*
* @return javax.swing.JTextField
*/
private JTextField getTprodotto() {
if (Tprodotto == null) {
Tprodotto = new JTextField();
Tprodotto.setBounds(new Rectangle(431, 39, 170, 20));
}
return Tprodotto;
}
/**
* This method initializes Bins
*
* @return javax.swing.JButton
*/
private JButton getBins() {
if (Bins == null) {
Bins = new JButton();
Bins.setBounds(new Rectangle(232, 71, 155, 27));
Bins.setFont(new Font("Eras Demi ITC", Font.PLAIN, 18));
Bins.setText("Inserisci");
Bins.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
if(Tpiva.getText().compareTo("")==0||Tdescrizione.getText().compareTo("")==0||Tprodotto.getText().compareTo("")==0)
JOptionPane.showMessageDialog(null, "Tutti i messaggi sono obbligatori");
else
{
Insert ins = new Insert(connection);
Fornitore venditore = new Fornitore();
venditore.setPiva(Tpiva.getText());
venditore.setDenominazione(Tdescrizione.getText());
venditore.setProdotto(Tprodotto.getText());
try{
ins.inserisciFornitore(venditore);
JOptionPane.showMessageDialog(null, "Aggiornamento avvenuto con successo");
eseguiQ();
}catch(SQLException sqlex){JOptionPane.showMessageDialog(null, sqlex.getMessage().toString());}
}
}
});
}
return Bins;
}
/**
* This method initializes jScrollPane
*
* @return javax.swing.JScrollPane
*/
private JScrollPane getJScrollPane() {
if (jScrollPane == null) {
jScrollPane = new JScrollPane();
jScrollPane.setBounds(new Rectangle(0, 117, 616, 121));
jScrollPane.setViewportView(getJTable());
}
return jScrollPane;
}
/**
* This method initializes jTable
*
* @return javax.swing.JTable
*/
private JTable getJTable() {
if (jTable == null) {
jTable = new JTable();
q= new Query("select * from fornitore",connection);
righe=q.getRighe();
for(int i=0; i<righe.size();i++)
{
righe_app.addElement(righe.elementAt(i));
}
colonne=q.getAttributi();
modello=new DefaultTableModel();
modello.addTableModelListener(new javax.swing.event.TableModelListener() {
public void tableChanged(javax.swing.event.TableModelEvent e) {
riga_selezionata=e.getLastRow();
if(riga_selezionata==-1)
return;
System.out.println("ecco: "+righe_app.elementAt(riga_selezionata));
if(nuovi_valori.size()>3)
nuovi_valori.clear();
for(int i=0; i<jTable.getColumnCount();i++){
String c=jTable.getModel().getValueAt(riga_selezionata, i).toString();
nuovi_valori.addElement(c);
System.out.println(nuovi_valori.elementAt(i));
}
//nuovi_valori.addElement(jTable.getModel().getValueAt(e.getLastRow(), i).toString());
}
});
modello.setDataVector(righe, colonne);
jTable.setModel(modello);
}
return jTable;
}
private void eseguiQ()
{
try
{
q.updateRS("select * from fornitore");
righe=q.getRighe();
for(int i=0; i<righe.size();i++)
{
righe_app.addElement(righe.elementAt(i));
}
//righe_app=(Vector)righe.clone();
modello.setDataVector(righe, colonne);
}catch(SQLException e){}
}
/**
* This method initializes Bcancella
*
* @return javax.swing.JButton
*/
private JButton getBcancella() {
if (Bcancella == null) {
Bcancella = new JButton();
Bcancella.setBounds(new Rectangle(247, 246, 196, 32));
Bcancella.setFont(new Font("Eras Demi ITC", Font.PLAIN, 18));
Bcancella.setText("Cancella Fornitore");
Bcancella.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed()
}
});
}
return Bcancella;
}
/**
* This method initializes Bupdate
*
* @return javax.swing.JButton
*/
private JButton getBupdate() {
if (Bupdate == null) {
Bupdate = new JButton();
Bupdate.setBounds(new Rectangle(458, 249, 128, 30));
Bupdate.setFont(new Font("Eras Demi ITC", Font.PLAIN, 18));
Bupdate.setText("Aggiorna");
Bupdate.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
System.out.println(riga_selezionata);
try{
updateTable();
eseguiQ();
nuovi_valori.clear();
}catch(SQLException sex){
JOptionPane.showMessageDialog(null, sex.getMessage().toString());
sex.getStackTrace();
}
}
});
}
return Bupdate;
}
private void updateTable() throws SQLException
{
if(nuovi_valori.size()==0)
JOptionPane.showMessageDialog(null, "dopo aver modificato la riga, dai invio e quindi premi su aggiorna.");
else
{
String denom;
String piva;
String prod;
String vpiva=null;
int index1=righe_app.elementAt(riga_selezionata).toString().indexOf(", ");
int index2=righe_app.elementAt(riga_selezionata).toString().lastIndexOf(",");
vpiva=righe_app.elementAt(riga_selezionata).toString().substring(index1+2, index2);
PreparedStatement update;
update=connection.prepareStatement("UPDATE fornitore set Piva=?, Denominazione=?, Prodotto=? where Piva=?");
denom=nuovi_valori.elementAt(0).toString();
piva=nuovi_valori.elementAt(1).toString();
prod=nuovi_valori.elementAt(2).toString();
System.out.println("UPDATE fornitore set Piva="+piva+", Denominazione=?"+denom+", Prodotto=?"+"prod"+ "where Piva=?"+vpiva);
System.out.println(righe_app.elementAt(riga_selezionata));
update.setString(1, piva);
update.setString(2, denom);
update.setString(3, prod);
update.setString(4, vpiva);
update.executeUpdate();
}
}
} // @jve:decl-index=0:visual-constraint="10,10"