Hello Sir, I made search button with textfield .when i enter search value in the search field only one row is displayed in the jtable .Suppose i enter name in search field which has two rows in the database table so i want to display both or any number of identicle rows in the jtable .I am posting my code .plz see and give me the remaning code .
Will always be gratefull. Waiting for ur reply .Thanks
import java.awt.*; import java.sql.*; import java.awt.event.*; import javax.swing.*;
class Search {
public static void main(String[] args) { JLabel lab = new JLabel("Enter Name:"); final JTextField t = new JTextField(20); JButton b = new JButton("Search"); JPanel p = new JPanel(new GridLayout(1, 1)); p.add(lab); p.add(t); p.add(b); JFrame f = new JFrame(); f.getContentPane().add(p); f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); f.setLocationRelativeTo(null); f.pack(); f.setVisible(true); b.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { String name = t.getText(); try { Class.forName("com.mysql.jdbc.Driver"); Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/techsoft", "root", "techsoft"); Statement st = con.createStatement(); ResultSet rs = st.executeQuery("select * from ankur where name='" + name + "'"); String n = "", add = "", contact = "", email = ""; if (rs.next()) { n = rs.getString("name"); add = rs.getString("address"); contact = rs.getString("contactNo"); email = rs.getString("email"); } String data[][] = new String[1][4]; data[0][0] = n; data[0][1] = add; data[0][2] = contact; data[0][3] = email; JFrame frame = new JFrame(); String labels[] = {"Name", "Address", "Contact No", "Email"}; JTable table = new JTable(data, labels); JScrollPane pane = new JScrollPane(table); frame.add(pane); frame.setSize(500, 100); frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); //frame.pack(); frame.setLocationRelativeTo(null); frame.setVisible(true); // frame.pack(); } catch (Exception ex) { System.out.println(e); } } }); }
}
Here is a code that search the data from the database and show multiple identical rows from database on clicking search button to jtable.
import java.awt.*; import java.sql.*; import java.util.*; import java.awt.event.*; import javax.swing.*; class Search{ public static void main(String[] args) { final Vector columnNames = new Vector(); final Vector data = new Vector(); JLabel lab=new JLabel("Enter Name:"); final JTextField t=new JTextField(20); JButton b = new JButton("Search"); JPanel p = new JPanel(new GridLayout(2,2)); p.add(lab); p.add(t); p.add(b); JFrame f = new JFrame(); f.getContentPane().add(p); f.pack(); f.setVisible(true); b.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ String name=t.getText(); try{ Class.forName("com.mysql.jdbc.Driver"); Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "root"); Statement st=con.createStatement(); ResultSet rs=st.executeQuery("select * from data where name='"+name+"'"); ResultSetMetaData md = rs.getMetaData(); int columns = md.getColumnCount(); for (int i = 1; i <= columns; i++) { columnNames.addElement( md.getColumnName(i) ); } while (rs.next()) { Vector row = new Vector(columns); for (int i = 1; i <= columns; i++){ row.addElement( rs.getObject(i) ); } data.addElement( row ); } JFrame frame=new JFrame(); JTable table = new JTable(data, columnNames); JScrollPane pane=new JScrollPane(table); frame.add(pane); frame.setVisible(true); frame.pack(); } catch(Exception ex){ System.out.println(e); } } }); } }