Sa ovom klasom vadim podatke iz baze:
Code:
package poslodavac.izlaz;
import poslodavac.tabela.tabelaP;
import javax.swing.table.*;
import javax.swing.*;
import java.sql.*;
public class izlazP extends AbstractTableModel
{
protected static int numRows = 0;
static String[] names = {("Ime i Prezime"), ("Naziv Firme"), ("Home Page"), ("Email"), ("Telefon"), ("Sediste Firme"), ("Zanimanje"), ("Datum Upisa"), ("Napomena")};
protected Object[][] data;
static ResultSet rset;
static Connection conn;
static String jdbcURL = "jdbc:mysql://localhost/svrle";
static String username = "root";
static String password = "";
public izlazP()
{
data = new Object[100][names.length];
try
{
Class.forName("org.gjt.mm.mysql.Driver");
}catch(Exception e)
{
JOptionPane.showMessageDialog(null, "Driver for JDBC isn't found in it's directory! Check if you have installed the JDBC and MySQL!", "Driver not found!", JOptionPane.OK_OPTION);
System.err.println("Ha, ha! Database error!");
e.printStackTrace();
}
read();
}
public synchronized void read()
{
try
{
conn=DriverManager.getConnection(jdbcURL, username, password);
Statement stat = conn.createStatement();
rset = stat.executeQuery("SELECT * FROM poslodavac");
while(rset.next())
{
data[numRows][0]=rset.getString(1);
data[numRows][1]=rset.getString(2);
data[numRows][2]=rset.getString(3);
data[numRows][3]=rset.getString(4);
data[numRows][4]=rset.getString(5);
data[numRows][5]=rset.getString(6);
data[numRows][6]=rset.getString(7);
data[numRows][7]=rset.getString(8);
data[numRows][8]=rset.getString(9);
numRows++;
}
stat.close();
conn.close();
} catch(Exception e)
{
JOptionPane.showMessageDialog(null, e.getMessage(), "Read table error!", JOptionPane.OK_OPTION);
System.out.println("DBase error!");
e.printStackTrace();
}
fireTableDataChanged();
}
// public synchronized void perdel(int[] arr)
// {
// for (int k=arr.length-1; k>=0; k--)
// {
// for(int j=arr[k]; j<numRows; j++)
// {
// for (int i=0; i<names.length; i++)
// {
// data[j][i]=data[j+1][i];
// }
// }
// }
// numRows-=arr.length;
// fireTableDataChanged();
// }
public synchronized String getColumnName(int column)
{
return names[column];
}
public int getColumnCount()
{
return names.length;
}
public synchronized int getRowCount()
{
return numRows;// = data.length;
}
public synchronized Object getValueAt(int row, int column)
{
return data[row][column];
}
}
package poslodavac.izlaz;
import poslodavac.tabela.tabelaP;
import javax.swing.table.*;
import javax.swing.*;
import java.sql.*;
public class izlazP extends AbstractTableModel
{
protected static int numRows = 0;
static String[] names = {("Ime i Prezime"), ("Naziv Firme"), ("Home Page"), ("Email"), ("Telefon"), ("Sediste Firme"), ("Zanimanje"), ("Datum Upisa"), ("Napomena")};
protected Object[][] data;
static ResultSet rset;
static Connection conn;
static String jdbcURL = "jdbc:mysql://localhost/svrle";
static String username = "root";
static String password = "";
public izlazP()
{
data = new Object[100][names.length];
try
{
Class.forName("org.gjt.mm.mysql.Driver");
}catch(Exception e)
{
JOptionPane.showMessageDialog(null, "Driver for JDBC isn't found in it's directory! Check if you have installed the JDBC and MySQL!", "Driver not found!", JOptionPane.OK_OPTION);
System.err.println("Ha, ha! Database error!");
e.printStackTrace();
}
read();
}
public synchronized void read()
{
try
{
conn=DriverManager.getConnection(jdbcURL, username, password);
Statement stat = conn.createStatement();
rset = stat.executeQuery("SELECT * FROM poslodavac");
while(rset.next())
{
data[numRows][0]=rset.getString(1);
data[numRows][1]=rset.getString(2);
data[numRows][2]=rset.getString(3);
data[numRows][3]=rset.getString(4);
data[numRows][4]=rset.getString(5);
data[numRows][5]=rset.getString(6);
data[numRows][6]=rset.getString(7);
data[numRows][7]=rset.getString(8);
data[numRows][8]=rset.getString(9);
numRows++;
}
stat.close();
conn.close();
} catch(Exception e)
{
JOptionPane.showMessageDialog(null, e.getMessage(), "Read table error!", JOptionPane.OK_OPTION);
System.out.println("DBase error!");
e.printStackTrace();
}
fireTableDataChanged();
}
// public synchronized void perdel(int[] arr)
// {
// for (int k=arr.length-1; k>=0; k--)
// {
// for(int j=arr[k]; j<numRows; j++)
// {
// for (int i=0; i<names.length; i++)
// {
// data[j][i]=data[j+1][i];
// }
// }
// }
// numRows-=arr.length;
// fireTableDataChanged();
// }
public synchronized String getColumnName(int column)
{
return names[column];
}
public int getColumnCount()
{
return names.length;
}
public synchronized int getRowCount()
{
return numRows;// = data.length;
}
public synchronized Object getValueAt(int row, int column)
{
return data[row][column];
}
}
A ovo je tabela u koju se smestaju podaci
Code:
package poslodavac.tabela;
import poslodavac.izlaz.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.sql.SQLException;
public class tabelaP extends JFrame implements ActionListener
{
JPanel Glavni = new JPanel(new BorderLayout());
JPanel Dole = new JPanel(new FlowLayout());
JButton del=new JButton("Obrisi");
JButton find=new JButton("Nadji");
JButton exit=new JButton("Izadji");
public static JTextField pret=new JTextField("",7); //Ovde pocinje String koji koristim za pretragu
static JTable Table = new JTable(new izlazP());
JScrollPane scrollPane = new JScrollPane(Table);
public tabelaP()
{
find.addActionListener(this);
find.setActionCommand("find");
del.addActionListener(this);
del.setActionCommand("del");
exit.addActionListener(this);
exit.setActionCommand("exit");
Table.setGridColor(Color.blue);
Table.setAutoResizeMode(Table.AUTO_RESIZE_SUBSEQUENT_COLUMNS);
Table.setDragEnabled(true);
Table.setSurrendersFocusOnKeystroke(true);
Table.setFont(new Font("Times New Roman",Font.PLAIN,14));
Dole.add(pret);
Dole.add(find);
Dole.add(del);
Dole.add(exit);
Glavni.add(Dole,BorderLayout.SOUTH);
Glavni.add(scrollPane);
setContentPane(Glavni);
}
public void pret()
{
}
public void actionPerformed(ActionEvent ae)
{
if(ae.getActionCommand()=="find")
{
//
JFrame Win = new tabelaS();
Win.setSize(430,400);//x,y
Win.setVisible(true);
Win.setLocation(75,80);
}
if(ae.getActionCommand()=="del")
{
}
if(ae.getActionCommand()=="exit")
{
this.dispose();
}
}
}
package poslodavac.tabela;
import poslodavac.izlaz.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.sql.SQLException;
public class tabelaP extends JFrame implements ActionListener
{
JPanel Glavni = new JPanel(new BorderLayout());
JPanel Dole = new JPanel(new FlowLayout());
JButton del=new JButton("Obrisi");
JButton find=new JButton("Nadji");
JButton exit=new JButton("Izadji");
public static JTextField pret=new JTextField("",7); //Ovde pocinje String koji koristim za pretragu
static JTable Table = new JTable(new izlazP());
JScrollPane scrollPane = new JScrollPane(Table);
public tabelaP()
{
find.addActionListener(this);
find.setActionCommand("find");
del.addActionListener(this);
del.setActionCommand("del");
exit.addActionListener(this);
exit.setActionCommand("exit");
Table.setGridColor(Color.blue);
Table.setAutoResizeMode(Table.AUTO_RESIZE_SUBSEQUENT_COLUMNS);
Table.setDragEnabled(true);
Table.setSurrendersFocusOnKeystroke(true);
Table.setFont(new Font("Times New Roman",Font.PLAIN,14));
Dole.add(pret);
Dole.add(find);
Dole.add(del);
Dole.add(exit);
Glavni.add(Dole,BorderLayout.SOUTH);
Glavni.add(scrollPane);
setContentPane(Glavni);
}
public void pret()
{
}
public void actionPerformed(ActionEvent ae)
{
if(ae.getActionCommand()=="find")
{
//
JFrame Win = new tabelaS();
Win.setSize(430,400);//x,y
Win.setVisible(true);
Win.setLocation(75,80);
}
if(ae.getActionCommand()=="del")
{
}
if(ae.getActionCommand()=="exit")
{
this.dispose();
}
}
}
Sa ovom funkcijom pokrecem iscitavanje iz baze:
Code:
if(ae.getActionCommand()=="pretP")
{
JFrame Win = new tabelaP();
Win.setSize(430,400);//x,y
Win.setVisible(true);
Win.setLocation(75,80);
if(ae.getActionCommand()=="pretP")
{
JFrame Win = new tabelaP();
Win.setSize(430,400);//x,y
Win.setVisible(true);
Win.setLocation(75,80);
napomena: Proveravao sam sa Front-om , program ubaci sve u bazu ali ima problema pri iscitavanju ...ali nisam siguran da li je do baze ili do AbstractTableModel
Svaka pomoc je dobrodosla ovaj problem me muci vec mesec dana
Unapred hvala