mysql db에서 추출한 데이터로 가득 찬 두 개의 목록이 있습니다. 내가 원하는 것은 사용자가 JList1 (메뉴 목록)에서 항목 (메뉴)을 선택하면 Jlist2 (productList라고 함)는 그 메뉴의 제품과 그 밖의 것들, 즉 그 안에 새로운 제품을 삽입 할 수있는 기능을 표시해야합니다. 메뉴 또는 방금 만든 새 메뉴에서 사용자가 기존 메뉴 나 새로 생성 된 메뉴에 제품을 삽입하는지 알려주는 부울 변수를 사용하여 약한 것으로 생각하는 방식으로이 작업을 수행했습니다. 제발, 더 나은 솔루션을 제안 해 주실 수 있습니까? 여기두 개의 목록을 연결하는 방법
private void bAddProdActionPerformed(java.awt.event.ActionEvent evt) {
//If new menu is saved, get the new menu's Id
if (newMenuIsSaved == true) {
Product newProduct = new Product();
newMenuId = DBConnection.getNewMenuId();
newProduct.setMenuId(newMenuId);
newProduct.setProductName(productName.getText());
if (checkPPriceValidity(productPrice.getText(), newProduct)) {
int result = DBConnection.insertProduct(newProduct);
if (result == 1) {
reloadProductList();
disableProductButtons();
}
}
} else {
Product newProduct = new Product();
//If a new menu wasn't saved, get the menuId from the selected one (from menuList):
Menu selectedMenu = (Menu) menuList.getSelectedValue();
newProduct.setMenuId(selectedMenu.getMenuId());
newProduct.setProductName(productName.getText());
if (checkPPriceValidity(productPrice.getText(), newProduct)) {
int result = DBConnection.insertProduct(newProduct);
if (result == 1) {
reloadProductList();
newMenuIsSaved = false;
disableProductButtons();
bNewProduct.setEnabled(true);
}
}
}
}
그리고 방법 reloadProductList()한다 :
private void reloadProductList() {
modelProductList.clear();
if (newMenuIsSaved) {
Vector<Product> productVoices = DBConnection.fillProductList(newMenuId);
for (int i = 0; i < productVoices.size(); i++) {
modelProductList.addElement((Product) productVoices.get(i));
}
} else {
Vector<Product> productVoices = DBConnection.fillProductList(selectedMenuId);
for (int i = 0; i < productVoices.size(); i++) {
modelProductList.addElement((Product) productVoices.get(i));
}
}
}
감사합니다 여기에 코드의 가장 중요한 부분의 추출물이다, 이것은 DB에 새로운 제품을 저장하는 방법은 당신이 아주 많이.
감사합니다.하지만 자세한 내용이나 예를 들어 주시겠습니까? – JamieITGirl
어쩌면 [this] (http://stackoverflow.com/a/15575202/261156)와 같은 것일 수 있습니까? –