我遇到了jlist的问题。每当我在textarea上放一个数据时,我的jlist中都会显示数据但是不会填充数据而是会删除前一个数据并且只会显示当前输入..顺便说一句,这是我的代码
private void postButtonActionPerformed(java.awt.event.ActionEvent evt) {
String theAccountID = showAccountID.getText();
String theFirstName = showFName.getText();
String theLastName = showSName.getText();
String name = theFirstName + " " + theLastName;
DateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
Date date = new Date();
String dateAndTimeCreated = dateFormat.format(date);
String show = thePost.getText();
Post obj = new Post(show);
String post = obj.getContent();
DefaultListModel model = new DefaultListModel();
String postOutput = dateAndTimeCreated + " " + name + ": " + post;
try
{
if(obj.getContent().equals(""))
{
JOptionPane.showMessageDialog(null, "This status update appears to be blank. Please write something to update your status.");
}
else
{
model.addElement(postOutput);
showPostStatus.setModel(model);
String sql = "insert into Post(account_id,post,datePostCreated) values (?,?,?)";
pst = conn.prepareStatement(sql);
pst.setString(1,theAccountID);
pst.setString(2,post);
pst.setString(3,dateAndTimeCreated);
pst.execute();
pst.close();
}
}
catch(Exception e)
{
JOptionPane.showMessageDialog(null,e);
}
thePost.setText(null);
}
答案 0 :(得分:3)
每次调用ListModel
时,您都会重新创建postButtonActionPerformed
,这会(有效地)丢弃JList
显示的所有其他内容,以支持新模型的内容< / p>
您可以考虑创建一个DefaultListModel
作为实例字段,将其设置为JList
模型,然后根据需要更新此模型
你也可以做点像......
DefaultListModel model = (DefaultListModel)showPostStatus.getModel();
// update the model...
您不需要应用该模型,因为您所做的任何更改都会自动反映在JList
内......