Note that there are some explanatory texts on larger screens.

plurals
  1. POAutoFill form using Java Swings and mysql
    text
    copied!<p>I am using java swings in this small project of mine.I have four text fields rollno,name,class and section and the search button.Once I click on the search button(the text fields are empty) I get a list of all table entries(column names same as text fields) from the database in a new table(Using Jtable).This is what I currently have.</p> <p>Now suppose I click on one row I want that data to appear in the the text fields with a mouse click,how should I do that?</p> <p>Here is my code:</p> <pre><code>import javax.swing.*; import javax.swing.table.DefaultTableModel; import java.awt.*; import java.sql.*; import java.awt.event.*; public class SearchResult implements ActionListener{ JFrame frame,frame1; JTextField textbox,textbox1,textbox2,textbox3,textbox4,textbox5,textbox6,textbox7,textbox8; JLabel label,label1,label2,label3,label4,label5,label6,label7,label8; JButton button; JPanel panel; static JTable table; String driverName = "com.mysql.jdbc.Driver"; String url = "jdbc:mysql://localhost:3306/mydb"; String userName = "root"; String password = "root"; String[] columnNames = {"Roll No", "Name", "Class", "Section"}; public void createUI() { frame = new JFrame("Database Search Result"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setLayout(null); textbox = new JTextField(); textbox.setBounds(120,30,150,20); label=new JLabel("Roll No."); label.setBounds(10, 30, 100, 20); textbox1 = new JTextField(); textbox1.setBounds(120,50,150,20); label1=new JLabel("Name"); label1.setBounds(10, 50, 100, 20); textbox2 = new JTextField(); textbox2.setBounds(120,70,150,20); label2=new JLabel("Class"); label2.setBounds(10, 70, 100, 20); textbox3 = new JTextField(); textbox3.setBounds(120,90,150,20); label3=new JLabel("Section"); label3.setBounds(10, 90, 100, 20); button = new JButton("search"); button.setBounds(120,230,150,20); button.addActionListener(this); frame.add(textbox); frame.add(label); frame.add(textbox1); frame.add(label1); frame.add(textbox2); frame.add(label2); frame.add(textbox3); frame.add(label3); frame.add(button); frame.setVisible(true); frame.setSize(500, 400); } public void actionPerformed(ActionEvent ae) { button = (JButton)ae.getSource(); System.out.println("Showing Table Data......."); showTableData(); } public void showTableData() { frame1 = new JFrame("Database Search Result"); //frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame1.setLayout(new BorderLayout()); //TableModel tm = new TableModel(); DefaultTableModel model = new DefaultTableModel(); model.setColumnIdentifiers(columnNames); //DefaultTableModel model = new DefaultTableModel(tm.getData1(), tm.getColumnNames()); //table = new JTable(model); table = new JTable(); table.setModel(model); table.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS); table.setFillsViewportHeight(true); JScrollPane scroll = new JScrollPane(table); scroll.setHorizontalScrollBarPolicy( JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); scroll.setVerticalScrollBarPolicy( JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); String textvalue = textbox.getText(); String roll= ""; String name= ""; String cl = ""; String sec = ""; try { Class.forName(driverName); Connection con = DriverManager.getConnection(url, userName, password); //String sql = "select * from student where rollno = "+textvalue; String sql="select * from student"; PreparedStatement ps = con.prepareStatement(sql); ResultSet rs = ps.executeQuery(); int i =0; while(rs.next()) { roll = rs.getString("rollno"); name = rs.getString("name"); cl = rs.getString("class"); sec = rs.getString("section"); model.addRow(new Object[]{roll, name, cl, sec}); } } catch(Exception ex) { JOptionPane.showMessageDialog(null, ex.getMessage(),"Error", JOptionPane.ERROR_MESSAGE); } frame1.add(scroll); frame1.setVisible(true); frame1.setSize(400,300); } public static void main(String args[]) { SearchResult sr = new SearchResult(); sr.createUI(); } } </code></pre> <p><strong>UPDATED CODE</strong></p> <pre><code>import javax.swing.*; import javax.swing.event.TableModelEvent; import javax.swing.event.TableModelListener; import javax.swing.table.DefaultTableModel; import java.awt.*; import java.sql.*; import java.util.Vector; import java.awt.event.*; public class barcoder implements ActionListener{ JFrame frame,frame1; JTextField textbox,textbox1,textbox2,textbox3,textbox4,textbox5,textbox6,textbox7,textbox8; JLabel label,label1,label2,label3,label4,label5,label6,label7,label8; JButton button; JPanel panel; static JTable table; String driverName = "com.mysql.jdbc.Driver"; String url = "jdbc:mysql://localhost:3306/mydb"; String userName = "root"; String password = "root"; String[] columnNames = {"Roll No", "Name", "Class", "Section"}; public void createUI() { frame = new JFrame("Database Search Result"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setLayout(null); textbox = new JTextField(); textbox.setBounds(120,30,150,20); label=new JLabel("Roll No."); label.setBounds(10, 30, 100, 20); textbox1 = new JTextField(); textbox1.setBounds(120,50,150,20); label1=new JLabel("Name"); label1.setBounds(10, 50, 100, 20); textbox2 = new JTextField(); textbox2.setBounds(120,70,150,20); label2=new JLabel("Class"); label2.setBounds(10, 70, 100, 20); textbox3 = new JTextField(); textbox3.setBounds(120,90,150,20); label3=new JLabel("Section"); label3.setBounds(10, 90, 100, 20); button = new JButton("search"); button.setBounds(120,230,150,20); button.addActionListener(this); frame.add(textbox); frame.add(label); frame.add(textbox1); frame.add(label1); frame.add(textbox2); frame.add(label2); frame.add(textbox3); frame.add(label3); frame.add(button); frame.setVisible(true); frame.setSize(500, 400); } public void actionPerformed(ActionEvent ae) { button = (JButton)ae.getSource(); System.out.println("Showing Table Data......."); showTableData(); } public void showTableData() { frame1 = new JFrame("Database Search Result"); //frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame1.setLayout(new BorderLayout()); //TableModel tm = new TableModel(); DefaultTableModel model = new DefaultTableModel(){ @Override public boolean isCellEditable(int row, int column) { return false; } }; model.setColumnIdentifiers(columnNames); //DefaultTableModel model = new DefaultTableModel(tm.getData1(), tm.getColumnNames()); //table = new JTable(model); table = new JTable(); table.setModel(model); model.addTableModelListener(new TableModelListener() { int row = table.getSelectedRow(); @Override public void tableChanged(TableModelEvent arg0) { int row = table.getSelectedRow(); System.out.println("Selecte table row = " + row); if (row != -1) { int modelRow = table.convertRowIndexToModel(row); System.out.println("Selecte model row = " + row); Vector data = (Vector) ((DefaultTableModel) table.getModel()).getDataVector().get(modelRow); textbox.setText(data.get(0).toString()); textbox1.setText(data.get(1).toString()); textbox2.setText(data.get(2).toString()); textbox3.setText(data.get(3).toString()); } } }); table.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { if (SwingUtilities.isLeftMouseButton(e) &amp;&amp; e.getClickCount() == 2) { if (table.getSelectedRow() != -1) { SwingUtilities.getWindowAncestor(table).dispose(); } } } }); table.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS); table.setFillsViewportHeight(true); JScrollPane scroll = new JScrollPane(table); scroll.setHorizontalScrollBarPolicy( JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); scroll.setVerticalScrollBarPolicy( JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); String textvalue = textbox.getText(); String roll= ""; String name= ""; String cl = ""; String sec = ""; try { Class.forName(driverName); Connection con = DriverManager.getConnection(url, userName, password); //String sql = "select * from student where rollno = "+textvalue; String sql="select * from student"; PreparedStatement ps = con.prepareStatement(sql); ResultSet rs = ps.executeQuery(); int i =0; while(rs.next()) { roll = rs.getString("rollno"); name = rs.getString("name"); cl = rs.getString("class"); sec = rs.getString("section"); model.addRow(new Object[]{roll, name, cl, sec}); } } catch(Exception ex) { JOptionPane.showMessageDialog(null, ex.getMessage(),"Error", JOptionPane.ERROR_MESSAGE); } frame1.add(scroll); frame1.setVisible(true); frame1.setSize(400,300); } public static void main(String args[]) { barcoder sr = new barcoder(); sr.createUI(); } } </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload