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); } } }); } }
Thank you very much Sir.
U really made my day...
Sir i do have one more query ,In the given code search results is being displayed in the other jframe.
But in my application i need to show search results in the same panel of jframe.
please Sir, send me the code for that. will always be gratefull. Thanking you for ur response nd waiting for reply ........