首先,我有带有列Appointment_ID,Doc_ID,Dep_Id,SchedDate,Patient_ID和Patient_Table的表Appointment_Table,并具有Patient_ID,FName,MI,LName等...。以及具有Doc_ID,FName,MI,LName等的Doctor_Table ...因此,我创建了一个带有3个JComboBox的框架Add Appointments frame,首先是部门名称,它当然包含部门名称,然后其中的医生名称包含FName,Mi,LName和患者名称相同。 / p>
因此我将所有只有医生的部门名称插入JCombobox
public void ViewDepartmentName(){
try{
String sql = "Select DISTINCT Department_Name from Department_Table\n" +
"inner join User_Table on Department_Table.Department_ID=User_Table.Department_ID\n" +
"where Role_ID = 3";
pst = conn.prepareStatement(sql);
rs = pst.executeQuery();
while(rs.next()){
String add1 = rs.getString("Department_Name");
DoctorDep.addItem(add1);
}
}catch(Exception e){
JOptionPane.showMessageDialog(null, e);
}finally {
try {
rs.close();
pst.close();
}catch(Exception e){
}
}
}
因此,每当我单击部门名称的JComboBox时,它只会显示有医生的部门名称
以及患者姓名
private void ViewDoctorPatientsBox(){
try{
String sql = "Select * from Patient_Records";
pst = conn.prepareStatement(sql);
rs = pst.executeQuery();
while(rs.next()){
String add1 = rs.getString("First_Name");
String add2 = rs.getString("MI");
String add3 = rs.getString("Last_Name");
DoctorPatient.addItem(add1+" "+add2+" "+add3);
}
}catch(Exception e){
JOptionPane.showMessageDialog(null, e);
}finally {
try {
rs.close();
pst.close();
}catch(Exception e){
}
}
}
,然后在“患者姓名”中插入Fname,MI,Lname,如上面的代码所示 与“医生姓名”相同,只有在我这样选择其部门时才会显示
try{
String sql = "Select * from User_Table\n" +
"inner join Department_Table on User_Table.Department_ID=Department_Table.Department_ID\n" +
"where Department_Name = ? AND Availability = 1";
pst = conn.prepareStatement(sql);
pst.setString(1, (String)DoctorDep.getSelectedItem());
rs = pst.executeQuery();
DoctorNames.removeAllItems();
DoctorNames.addItem("Select");
while(rs.next()){
String add1 = rs.getString("First_Name");
String add2 = rs.getString("MI");
String add3 = rs.getString("Last_Name");
DoctorNames.addItem(add1+" "+add2+" "+add3);
}
}catch(Exception e){
JOptionPane.showMessageDialog(null, e);
}finally {
try {
rs.close();
pst.close();
}catch(Exception e){
}
}
选择所有要选择的内容后,我需要将其保存到Appointment_Table中,只有他们的Doc_ID,Dep_ID,Patient_ID,而JComboBox却具有我应该做什么语法的名称?
答案 0 :(得分:0)
只有他们的Doc_ID,Dep_ID,Patient_ID而不是JComboBox的名称应该是什么语法?
您的组合框需要存储两个数据:
因此,您需要创建一个自定义对象以存储在组合框中,然后只需要在组合框中显示名称。
有两种显示名称的方法:
创建一个自定义渲染器。这是更好的方法,但涉及更多。有关此方法的示例,请参见Combo Box With Custom Renderer。
重写自定义对象的toString()方法以简单地返回名称。组合框的默认渲染器将调用对象的toString()方法。有关此方法的更多信息,请参见Combo Box With Hidden Data。