Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.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_Database_Jlist - Fatal编程技术网

Java 添加JList以显示基本数据库信息

Java 添加JList以显示基本数据库信息,java,database,jlist,Java,Database,Jlist,我的目标是在2个JTextFields上放置一个包含数据库数据的JList,但我不知道怎么做。你们知道错误是什么吗?我该怎么解决? (变量personList中包含所有数据。只需将其放入JList中即可。但此变量personList是ArrayList。) 公共类Datenbank2扩展JFrame{ 公共数据银行2(){ 超级(“莱赫林格1号莱赫杰银行”); JPanel centerPanel=新的JPanel(); JPanel southPanel=新的JPanel(); JPanel

我的目标是在2个JTextFields上放置一个包含数据库数据的JList,但我不知道怎么做。你们知道错误是什么吗?我该怎么解决? (变量personList中包含所有数据。只需将其放入JList中即可。但此变量personList是ArrayList。)

公共类Datenbank2扩展JFrame{
公共数据银行2(){
超级(“莱赫林格1号莱赫杰银行”);
JPanel centerPanel=新的JPanel();
JPanel southPanel=新的JPanel();
JPanel linkesPanel=新的JPanel();
这个.挫折(600300500450);
此.setDefaultCloseOperation(关闭时退出);
试一试{
Class.forName(“org.sqlite.JDBC”);
连接=驱动器管理器
.getConnection(“jdbc:sqlite:C://Users/N-YP/workspace/UebungJava/ch/nyp/uebungen/datenbanken/SqLiteDB.db”);
语句Statement=connection.createStatement();
ResultSet rs=statement.executeQuery(“SELECT*FROM Person”);
ArrayList personList=新的ArrayList();
while(rs.next()){
字符串vorname=rs.getString(“vorname”);
字符串nachname=rs.getString(“nachname”);
添加(新JLabel(vorname+“”+nachname));
System.out.println(vorname+“”+nachname);
}
JTextField eingVorname=新的JTextField();
JTextField eingNachname=新的JTextField();
setPreferredSize(新维度(230,30));
设置首选尺寸(新尺寸(230,30));
BorderLayout BorderLayout=新的BorderLayout();
此.getContentPane().setLayout(borderLayout);
此.add(中心面板,BorderLayout.CENTER);
添加(southPanel,BorderLayout.SOUTH);
添加(linkesPanel,BorderLayout.WEST);
FlowLayout FlowLayout=新的FlowLayout();
centerPanel.setLayout(flowLayout);
for(JLabel personLabel:personList){
中心面板。添加(personLabel);
}
southPanel.setLayout(flowLayout);
southPanel.add(eingVorname);
southPanel.add(eingNachname);
}
捕获(异常exc){
exc.printStackTrace();
系统出口(0);
系统输出
.println(“Datenbank geöffnet(muss später aber wieder geschlossen werden)。”;
}
}
公共静态void main(字符串[]args){
Datenbank2 javamitdb=new Datenbank2();
setVisible(true);
}
}

谢谢您,祝您度过愉快的一天。

在while循环中使用它的addElement()方法来添加每个结果,如下所示:

listModel = new DefaultListModel();
while (rs.next()) {
        String vorname = rs.getString("Vorname");
        String nachname = rs.getString("Nachname");
        listModel.addElement(vorname + " " + nachname);
        System.out.println(vorname + "  " + nachname);
    }
//then create a list with this model
list = new JList(listModel);

查看了解更多信息。

使用jlist如何?在提供的代码中,可以向面板添加标签。您可以在javadocs中找到更多关于jlists的信息和示例:@Grims我确实找到了helfull的网站,但我认为他们没有任何关于ArraySty的内容。所以我在那里读了更多的内容。你有一个错误(那么…是什么?)或者你不知道怎么做?@Poldie我的目标是在2个JTextFields上放置一个包含我数据库数据的JList,但我不知道怎么做。如果你看arraylist和vector的描述,你会注意到它们共享相同的接口以及父类。事实上,你不能用另一个来代替这个。jlist的构造函数需要向量而不是arraylist的原因是向量是同步的(线程安全的)。还可以使用新的JList(yourarylist.toArray())
listModel = new DefaultListModel();
while (rs.next()) {
        String vorname = rs.getString("Vorname");
        String nachname = rs.getString("Nachname");
        listModel.addElement(vorname + " " + nachname);
        System.out.println(vorname + "  " + nachname);
    }
//then create a list with this model
list = new JList(listModel);