[ gnenad @ 15.07.2005. 10:10 ] @
Pozdrav ...imam problem sa citanjem podataka iz baze, dakle ...kada unosim nove podatke u bazu dok ne resetujem program on nece da mi izbaci nove unete podatke ...i za sve uneto mora da ugasim i upalim program da bi refresh-ovao podatke ...sve se prikazuje u JTable. 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]; } } 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(); } } } 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); 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 |