Java 如何链接两个jlist

Java 如何链接两个jlist,java,mysql,swing,jlist,Java,Mysql,Swing,Jlist,我有两个向量列表,其中填充了从mysql数据库中提取的数据。我想要的是,当用户从Jlist1(我称之为menuList)中选择一个项目(菜单)时,Jlist2(我称之为productList)必须显示该菜单的产品以及其他内容,例如在该菜单或刚创建的新菜单中插入新产品的能力。 我以一种我认为很弱的方式完成了这项任务,通过使用一些布尔变量来判断用户是在现有菜单中插入产品还是在新创建的菜单中插入产品。请问,你能给我一个更好的解决方案(如果有的话)吗?下面是代码最重要部分的摘录,这是在db中保存新产品的

我有两个向量列表,其中填充了从mysql数据库中提取的数据。我想要的是,当用户从Jlist1(我称之为menuList)中选择一个项目(菜单)时,Jlist2(我称之为productList)必须显示该菜单的产品以及其他内容,例如在该菜单或刚创建的新菜单中插入新产品的能力。 我以一种我认为很弱的方式完成了这项任务,通过使用一些布尔变量来判断用户是在现有菜单中插入产品还是在新创建的菜单中插入产品。请问,你能给我一个更好的解决方案(如果有的话)吗?下面是代码最重要部分的摘录,这是在db中保存新产品的方法:

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();
如果(新菜单已保存){
Vector productVoices=DBConnection.fillProductList(newMenuId);
for(int i=0;i

非常感谢。

一种方法是将一个列表添加到
菜单列表
,并让处理程序设置另一个列表的模型以显示所选行的详细信息。

谢谢,但您能给我进一步的详细信息或任何示例吗?
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));
        }

    }
}