Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从数据库onload在Jlist中显示值_Java_Database_Swing_Jlist - Fatal编程技术网

Java 从数据库onload在Jlist中显示值

Java 从数据库onload在Jlist中显示值,java,database,swing,jlist,Java,Database,Swing,Jlist,[在Jlist中显示数据库onload中的值][Swing GUI和数据库` 初始化代码: public void initMethod() { try { PortSelectionBox.addItem("COM1"); PortSelectionBox.addItem("COM2"); String[] listData={"sac : 1", "prl : 2","railwa

[在Jlist中显示数据库onload中的值][Swing GUI和数据库`

初始化代码:

 public void initMethod()
    {


         try {
             PortSelectionBox.addItem("COM1");
             PortSelectionBox.addItem("COM2");

             String[] listData={"sac : 1", "prl : 2","railway : 3", "railway : 4", "railway : 5", "prl : 6"};
             //SourceJList.setListData(listData);


             //get values from database and show in destlist
             String query="Select * from `test`.`mapgroup`;";
             System.out.println("query for selecttion: "+query);
             ResultSet rs= con.SelectData(query);
             ArrayList al = new ArrayList();
             while(rs.next())
             {
                 group=rs.getString("GroupName");
                 port=rs.getString("PortId");
                 System.out.println("grp: "+group);
                 System.out.println("port: "+port);
                 al.add(group);

             }

             //check if values present in db then show in dest list

             //check which port is selected and then show value from database



             if((PortSelectionBox.getSelectedItem().toString()).equals(port))
             {
                 System.out.println("if condition satisfied"); 
             }
              for (String string : listData) {
                 SorceModel.addElement(string);
             }
             SourceJList.setModel(SorceModel);


         } catch (ClassNotFoundException ex) {
             Logger.getLogger(PanelSMS.class.getName()).log(Level.SEVERE, null, ex);
         } catch (SQLException ex) {
             Logger.getLogger(PanelSMS.class.getName()).log(Level.SEVERE, null, ex);
         }

    }
对combobox onchnage执行的操作:

 private void PortSelectionBoxActionPerformed(java.awt.event.ActionEvent evt) {                                                 
        // TODO add your handling code here:

        //Show values in destList according to values stored in DB with there ports ,what to do here to map values with values stored in db



    }
单击“添加”(>>)按钮时执行的操作:

private void addBtnActionPerformed(java.awt.event.ActionEvent evt) {            

         try {

            String port=PortSelectionBox.getSelectedItem().toString().trim();
             String group=SourceJList.getSelectedValue().toString();
             String temp=group;
             String query="query to insert into db";
             con.Ins_Upd_Del(query);
             System.out.println("code to add: "+query);

             System.out.println("data added");

            DestModel.addElement(temp);
            DestJList.setModel(DestModel);
            SorceModel.removeElement(group);
            System.out.println("done....");
         } catch (ClassNotFoundException ex) {
             Logger.getLogger(PanelSMS.class.getName()).log(Level.SEVERE, null, ex);
         } catch (SQLException ex) {
             Logger.getLogger(PanelSMS.class.getName()).log(Level.SEVERE, null, ex);
         }

    }
,


删除时执行的操作(如果我正确理解您的问题,您希望使两个
JList
组件的初始化正常工作。目标列表应根据数据库填写,对吗?这可能是这样的(属于
initMethod
方法的一部分):


PortSelectionBox
的作用我还不清楚。“COM1”和“COM2”是否与数据库中的某些记录相关(如“prl:1”和“prl:2”)?

实际上,这是第一次数据库中没有任何内容,因此destList应该是空的。PortSelectionBOX是imp,因为首先我要选择要添加组的端口,一旦我添加了一些内容,它应该添加到destList中并从sourcelist中删除。现在,当下次打开GUI时,我应该得到如下结果:存储在与特定选定端口对应的数据库中。exm:i使用prl:1和prl:2存储端口COM1,然后选择COM2并存储铁路:1和铁路:2,现在所有这些值都应显示在具有相应端口的DestList中。Thanks我在数据库中有一个名为mapgroup的表,其中包含mapgroupID、GroupName和PortName列。我正在添加在DB中添加按钮事件的数据,现在如果我有值COM1和prl:1和prl:2,那么我选择COM2并将铁路:1和铁路:2存储在DB中,然后在视图部分中,组应该显示在destList中,有各自的端口。我不明白在初始化中或在selectionBox onchange事件中在何处编写此代码,以及如何将这些组映射到要在destList中显示的端口。PortSelectionBox也是动态的(例如,我在selectionbox中手动添加了值),因此任何值都可以在那里,并且我可以将任何端口映射到任何组…我只想根据destList中选择的端口查看相应的数据(从数据库中获取值)组端口映射何时存储在数据库中?当用户按下“继续”按钮时,或者当用户选择其他端口时?目标列表中的组是否应存储已添加的端口,或者是否应将所有目标组链接到当前选择的端口?最好更新代码in请回答您的问题,并解释与该问题相关的剩余问题(“从数据库onload在Jlist中显示值”)。一个示例总是有帮助的。没有问题,我解决了这个问题,只是我犯了一个愚蠢的错误。我所做的是,在选择端口时,我清除了destList和destModel,然后相应地获取了数据。
private void removeBtnActionPerformed(java.awt.event.ActionEvent evt) {                                          
    // TODO add your handling code here:
    try {
        String port=PortSelectionBox.getSelectedItem().toString().trim();
         String group=DestJList.getSelectedValue().toString();
         String temp=group;
         String query="query to delet";
         System.out.println("code to remove: "+query);
         con.Ins_Upd_Del(query);
         System.out.println("data added");

        SorceModel.addElement(temp);
        SourceJList.setModel(SorceModel);
        DestModel.removeElement(group);
        System.out.println("done....");
     } catch (ClassNotFoundException ex) {
         Logger.getLogger(PanelSMS.class.getName()).log(Level.SEVERE, null, ex);
     } catch (SQLException ex) {
         Logger.getLogger(PanelSMS.class.getName()).log(Level.SEVERE, null, ex);
     }
}     
// [...]

//get values from database and show in destlist
String query="Select * from `test`.`mapgroup`;";
System.out.println("query for selection: "+query);
ResultSet rs= con.SelectData(query);
String port = null;
ArrayList<String> groupsInDatabase = new ArrayList<>();
while(rs.next())
{
    String group=rs.getString("GroupName");
    port=rs.getString("PortId");
    System.out.println("grp: "+group);
    System.out.println("port: "+port);
    groupsInDatabase.add(group);
}

//check if values present in db then show in dest list
DestModel = new DefaultListModel<>();
for (final String group : groupsInDatabase) {
    DestModel.addElement(group);
}
DestJList.setModel(DestModel);

// [...]
// [...]

SourceModel = new DefaultListModel<>();
for (String group : allGroups) {
    if (!groupsInDatabase.contains(group)) {
        SourceModel.addElement(group);
    }
}
SourceJList.setModel(SourceModel);

// [...]