簡體   English   中英

基於JCombobox Java上的selectedItem的JFrame

[英]JFrame based on selectedItem on JCombobox Java

我剛剛開始用Java開發,所以我有一個新手問題,我有一個Jcombobx,正在使用此函數從數據庫中填充它:

private void fill(){
   try{
       con = DriverManager.getConnection("jdbc:....");
       Statement pst = con.createStatement();
       String sql = "select * from student";
       ResultSet rs = pst.executeQuery(sql);
       while(rs.next()){
            jCombo.addItem(rs.getString("strudent_name");
       }
   } catch (Exception e){
      System.out.println(e.getMessage);
 }

代碼正在運行並且從數據庫中填充了組合,下一步是基於組合框中的selectedItem從數據庫中填充另一個JFrame,當我在PHP中進行開發時,我知道這會更容易,因為我只需要將選擇值中的id和顯示的名稱。 在android中,我可以通過Intent發送,但我不知道如何在jaa中進行操作,因為必須打開的下一個JFrame必須使用其他表中的信息來獲取有關所選學生的詳細信息。 感謝您的幫助。

首先為學生創建一個包裝器類

public class Student
{

    private int id;
    private String name;
    //more fields here like grades, subjects etc

    public Student(int id, String name)
    {
        super();
        this.id = id;
        this.name = name;
    }



    public int getId()
    {
        return this.id;
    }



    public void setId(int id)
    {
        this.id = id;
    }



    public String getName()
    {
        return this.name;
    }



    public void setName(String name)
    {
        this.name = name;
    }



    @Override
    public String toString()
    {
        return name;
    }


}

然后像這樣聲明JComboBox

JComboBox<Student> jCombo = new JComboBox<>();

接着

private void fill(){
   try{
       con = DriverManager.getConnection("jdbc:....");
       Statement pst = con.createStatement();
       String sql = "select * from student";
       ResultSet rs = pst.executeQuery(sql);
       while(rs.next()){
        Student student = new Student(rs.getInt("student_id") , rs.getString("student_name"));     
         jCombo.addItem(student);
       } // while end

   } catch (Exception e){
      System.out.println(e.getMessage);
 }

單擊某些按鈕后,您可以通過以下方式獲取所選學生的ID

showDetailsButton.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent arg0)
        {
            Student selectedStudent = (Student) jCombo.getSelectedItem();
            new StudentDetails(selectedStudent.getId());

        }
    });

其中StudentDetails是另一個JFrame

class StudentDetails extends JFrame 
{
    public StudentDetails(int studentID)
    {
        // "Select * from student where student_id =" + studentID;
        super();
        add(new JLabel("Detail of student with id " + studentID + " goes here"));
        setVisible(true);
        setSize(100, 100);

    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM