Note that there are some explanatory texts on larger screens.

plurals
  1. POClick on textfield instead of button Java Swings
    primarykey
    data
    text
    <p>I have this code in Java Swings which creates 2 frames.The first frame contains 4 text fields(roll no,name,class,section) <strong>leaving the text fields blank</strong> I click on the search button in the 1st frame,another frame opens with all my table records in the database.Once I select a record(or the row) all the details of it appear in the 1st frame,i.e roll no,class,name and section get populated. Right now I am using the search button to go to the next frame.What should I do so that the action is performed once I click on the roll no. text field instead of the search button?</p> <p>This is the code:</p> <pre><code>import javax.swing.*; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; 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 barcoder1 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); final JTable table = new JTable(model); table.getSelectionModel().addListSelectionListener(new ListSelectionListener() { @Override public void valueChanged(ListSelectionEvent e) { 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[]) { barcoder1 sr = new barcoder1(); sr.createUI(); } } </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

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