0

I have populated my JComboBox with the value of same database table and I need an idea to display the value of JComboBox as it is in JTextField.

I am not using Array list instead I am using database table(mysql),below is the program

import java.sql.*;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.io.*;
class Test extends JFrame implements ActionListener
{
  JButton b1,b2;
 JComboBox jc;
 String name;
 JTextField t1;
Connection con,conn;
Statement st;
PreparedStatement pst;
ResultSet rs,rs1;
 Test()
{
     setLayout(null);       
     JLabel l1=new JLabel("USER SELECTION :");
     l1.setBounds(100, 100, 150, 60);
     add(l1);
     JComboBox jc = new JComboBox();
     jc.setBounds(230,114,120,30);
     jc.addActionListener(this);
     add(jc);
     JButton b1=new JButton("GENERATE PART NO. :");
     b1.setBounds(70, 340, 170, 30);
     b1.addActionListener(this);
     add(b1);
     t1=new JTextField (10);
     t1.setBounds(270, 340, 200, 30);
     add(t1);
     JButton b2=new JButton("BACK");
     b2.setBounds(190, 420,120, 30);
     b2.addActionListener(this);
     add(b2);

     setSize(500, 500);
        setResizable(false);
        this.setVisible(true); 
        this.setLocationRelativeTo(null);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    
 try{
        Class.forName("com.mysql.jdbc.Driver");
  con= DriverManager.getConnection("jdbc:mysql://localhost/d02","root","");
  st = con.createStatement();

  String s = "select Userdata from user";

  rs = st.executeQuery(s);

    while(rs.next())
    {
            String name = rs.getString("Userdata");
        jc.addItem(rs.getString("Userdata"));
   }
}
catch(Exception e)
{
    JOptionPane.showMessageDialog(null, "ERROR");
}
    finally
{
    try
    {
        //st.close();
        rs.close();
        //con.close();
    }
    catch(Exception e)
    {
        JOptionPane.showMessageDialog(null, "ERROR CLOSE");
    }
}
}

  public void actionPerformed(ActionEvent ae)

 {
 String str=ae.getActionCommand();
     if(str.equals("GENERATE PART NO. :"))
     {
 try
     {
                Class.forName("com.mysql.jdbc.Driver");
              conn = DriverManager.getConnection("jdbc:mysql://localhost/d02","root","");

              String query="select value from user where Userdata=?";
              PreparedStatement pst=conn.prepareStatement(query);
              String tmp=(String)jc.getSelectedItem().toString();
              if(jc.getSelectedItem()!=null)
              pst.setString(1,tmp);
              ResultSet rs1=pst.executeQuery();
              while(rs1.next())
              {
                  String add=rs1.getString("value");
                  t1.setText(add);
              }

     }
         catch(Exception ex)
     {
           ex.printStackTrace();
          JOptionPane.showMessageDialog(null, "ERROR CLOSE");
     }
             if(str.equals("BACK")==true)
            {
                new categ();
                setVisible(false);
            }
     }
 }   
public static void main(String[] args) throws IOException
   {
  Test td=new Test();
   }

}

user6443988
  • 57
  • 1
  • 1
  • 11

1 Answers1

1

Add ItemListener to your JComboBox

jc.addItemListener(new java.awt.event.ItemListener() {
            public void itemStateChanged(java.awt.event.ItemEvent evt) {
                cmbMyItemStateChanged(evt);
            }
        });

listener method:

private void cmbMyItemStateChanged(java.awt.event.ItemEvent evt){                                       
    String value = jc.getSelectedItem().toString();
    if(jc.getSelectedItem()!=null){

    }
}            
Ngima Sherpa
  • 1,397
  • 1
  • 13
  • 34