1
我一直在與一個項目,需要我使用多個jcombobox。我確實嘗試鏈接三個jcombobox,但未能顯示所有必要的下拉列表。問題瓦特/多個jcombobox
在我的一個組合框中,我有銀行列表(銀行1,銀行2),另一個是所選銀行的所有分行清單(銀行1(分行1-1,分行1-2),銀行2 (branch2-1,branch2-2)),最後一個是已經選擇的所有特定分支的賬號。每個分行都有多個賬戶。
我沒有問題,使用2個組合框,所有分支都顯示爲已選擇的特定銀行,但是,當我添加第三個組合框時,只有一個分支正在從我的數據庫中查詢。恩。如果我選擇Bank1,則只有「branch1」在列表中,並且如果Bank2只有分支2-1也會在列表中,但是特定分支的帳戶#位於下拉列表中。
private void populateSavingsAccountComboBox() {
accountNo.removeAllItems();
bankBranch.removeAllItems();
selectBank();
bankName.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String bank = bankName.getSelectedItem() == null ?
"" : bankName.getSelectedItem().toString();
selectBranch(bank);
}
});
bankBranch.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
Object source = e.getSource();
JComboBox target = (JComboBox) e.getSource();
String branch = target.getSelectedItem() == null ?
"" : target.getSelectedItem().toString();
if (e.getStateChange() == ItemEvent.SELECTED) {
selectAccountNo(bankName.getSelectedItem().toString(), branch);
}
}
});
}
private void selectBank() {
List bankList = new ArrayList();
try {
stmt = conn.createStatement();
rs = stmt.executeQuery(" SELECT bankName FROM bank_tbl ");
bankName.removeAllItems();
while (rs.next()) {
String bank = rs.getString("bankName");
bankList.add(bank);
Object bankElement = bankList.get(bankList.size() - 1);
bankName.addItem(bankElement);
}
} catch (SQLException ex) {
Logger.getLogger(addSavings.class.getName()).log(Level.SEVERE, null, ex);
}
}
private String selectBranch(String bank) {
try {
List branchList = new ArrayList();
rs = stmt.executeQuery(" SELECT branch FROM bank_branch_tbl WHERE "
+ " bankName = '" + bank + "' ");
bankBranch.removeAllItems();
while (rs.next()) {
branchList.add(rs.getString("branch"));
Object branchElement = branchList.get(branchList.size() - 1);
bankBranch.addItem(branchElement);
}
} catch (SQLException ex) {
Logger.getLogger(addContact.class.getName()).log(Level.SEVERE, null, ex);
}
return bank;
}
private String selectAccountNo(String bank, String branch) {
List accountNoList = new ArrayList();
try {
rs = stmt.executeQuery(" SELECT accountNo FROM account_no_tbl WHERE "
+ " bankName = '" + bank + "' AND "
+ " branch = '" + branch + "' ");
accountNo.removeAllItems();
while (rs.next()) {
accountNoList.add(rs.getString("accountNo"));
Object accountNoElement = accountNoList.get(accountNoList.size() - 1);
accountNo.addItem(accountNoElement);
}
} catch (SQLException ex) {
Logger.getLogger(addSavings.class.getName()).log(Level.SEVERE, null, ex);
}
return branch;
}
請縮進您的代碼,很難像這樣讀取它。 – MByD 2011-05-25 08:17:21
@Jet Beray在這個論壇上歡迎 – mKorbel 2011-05-25 08:20:45
10s我已經縮進了代碼,感謝NetBeans先生。該編輯正在等待批准。 – Boro 2011-05-25 08:54:59