Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.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 用表格填充JList_Java_Sql_Swing_Jlist - Fatal编程技术网

Java 用表格填充JList

Java 用表格填充JList,java,sql,swing,jlist,Java,Sql,Swing,Jlist,有没有人有任何好的教程可以像下面这样用sql中的表来填充JList。JList将在每次创建或删除表时得到更新 SELECT name FROM sqlite_master WHERE type = 'table'; 任何帮助都将不胜感激。这很简单,您不需要教程:)使用costructor从元素的恢复列表中构建您的JList 在查询结果游标上迭代,并用从数据库中获得的元素填充向量。然后使用向量作为构建您的JList的基础数据容器(模型): Vector<String> element

有没有人有任何好的教程可以像下面这样用sql中的表来填充JList。JList将在每次创建或删除表时得到更新

SELECT name FROM sqlite_master WHERE type = 'table';

任何帮助都将不胜感激。

这很简单,您不需要教程:)使用costructor从元素的恢复列表中构建您的
JList

在查询结果游标上迭代,并用从数据库中获得的元素填充
向量。然后使用
向量
作为构建您的
JList
的基础数据容器(模型):

Vector<String> elements = new Vector<String>();
while (query.next()) {
    // or whatever is appropriate
    elements.add(query.getString("name"));
}  
Jlist mylist = new Jlist(elements);
向量元素=新向量();
while(query.next()){
//或者任何合适的
添加(query.getString(“name”));
}  
Jlist mylist=新的Jlist(元素);

您应该将DB查询代码(与模型相关)从GUI构建(视图)中分离出来,以便于将来的维护,并在所谓的MVC结构中分离结构,但这不在本问题的范围之内。

您可以使用
DefaultListModel
查看此示例:

    //......
    DefaultListModel listModel = new DefaultListModel();
    String query = "SELECT name FROM sqlite_master WHERE type = 'table'";
    rs = st.executeQuery(sql);
    while(rs.next){
    listModel.addElement(rs.getObject("name"));// I think you want get this field
    }

    list.setModel(listModel);

创建一个类,使用此查询从数据库加载列表。然后使用swing类中的此类获取字符串列表,并填充JList。数据库相关代码不应与表示相关代码位于同一类中。将刷新按钮添加到UI以重新执行查询并刷新列表。或者每X秒自动刷新一次,因为你的问题解决了,请考虑