【发布时间】:2019-11-30 02:25:54
【问题描述】:
我创建了一个 java 软件应用程序,其中有一个表单,其中包含少量 JTextField 和一个 JList。 JList 中的项目也由用户在同一页面中存在的 JTextField 的帮助下插入。我想在单击提交按钮时将 JTextField 和 JList 保存在 MySQL 数据库中。我已经成功地将 JTextField 数据插入到 MySQL 数据库表中,但问题是我不知道如何将 JList 保存在单个块中。只是为了练习,我尝试保存 JList 并为数据库中的每个项目保存新行。
有什么方法可以将整个 JList 添加到单个块中。
或
如果不是,我如何将 JList 与 MySQL 中的剩余数据链接。
我知道我们一次只能问一个问题,但另一个问题是如何在 JTable 中以 JList 的形式将 JList 从数据库检索到 JTable 以及所有其他详细信息。
DefaultListModel dlm= new DefaultListModel();
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
String userInput= jTextField1.getText();
dlm.addElement(userInput);
jList1.setModel(dlm);
jTextField1.setText(null);
}
String item="";
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
for(int i = 0; i < jList1.getModel().getSize(); i++)
{ item = (String)jList1.getModel().getElementAt(i);
try{
Class.forName("com.mysql.jdbc.Driver");
Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/a","root","");
PreparedStatement stmt = conn.prepareStatement("insert into listt (listitem) values (?)");
stmt.setString(1,item);
stmt.execute();
conn.close();
}
catch(Exception e){
JOptionPane.showMessageDialog(null, e);
e.printStackTrace();
}
}
JOptionPane.showMessageDialog(null, "Done");
}
上面的代码有两个按钮,btn1 将 JTextField 数据添加到 JList,btn2 将 JList 项添加到数据库。它将每个项目保存在数据库的新行中,但我想将它保存在与其他数据一起的单个块中的单个行中。
用于将数据从 MySQL 显示到 JList 和 jTable 的代码:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
try{
Class.forName("com.mysql.jdbc.Driver");
Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/a","root","");
String query="SELECT listitem FROM listt;";
PreparedStatement prepstmt=conn.prepareStatement(query);
ResultSet rs=prepstmt.executeQuery();
while(rs.next()){
String item= rs.getString(1);
dlm.addElement(item);
jList1.setModel(dlm);
}
}catch(Exception e){
JOptionPane.showMessageDialog(null, e);
}
}
当前 JTable 结果的图像。 ![https://imgur.com/dPlnLVu]
Jtable 的代码在这里:
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
Update_table();
}
private void Update_table(){
try{
Class.forName("com.mysql.jdbc.Driver");
Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/ft","root","");
String query="SELECT * FROM ftt;";
PreparedStatement prepstmt=conn.prepareStatement(query);
ResultSet rs=prepstmt.executeQuery();
jTable1.setModel(DbUtils.resultSetToTableModel(rs));
}catch(Exception e){
JOptionPane.showMessageDialog(null, e);
}
}
listitem 列中的项目应该在每行的 JList 中,并且 null 显示不显示 iit 是在将 jlist 值保存到数据库时在 Mysql 数据库中自动生成的。
其余的事情都解决了,但我仍然需要在 jTable 中生成 JList。
【问题讨论】:
-
您可以在字符串数组中添加所有列表元素,例如第一个值::第二值::第三值将该字符串数组保存在数据库中
-
@KamalKumar null 现在未在 Jlist 中显示,谢谢。
-
你可以接受我的回答
-
@KamalKumar 你建议我一个关于 Jtable 中 Jlist 的链接,但它对我没有帮助。如果你能帮忙,请。
-
描述你卡在哪里了?解释你的问题
标签: java mysql swing jtable jlist