[英]How to add multiple line from TextField to JList
我有以下代码:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
Tname = name.getText();
DefaultListModel model;
model = new DefaultListModel();
model.addElement(Tname);
list.setModel(model);
}
当我尝试此代码并添加TextField中的文本并在Jlist中显示时,它总是将上一行替换为新行。
如何添加多行而不替换先前的输入?
每次调用此方法时,您都将创建一个新的 DefaultListModel,因此将删除原始列表模型中保存的所有数据。 解决方案是不这样做。 从您的JList中获取当前的ListModel, 不要创建一个新的ListModel,然后将您的元素添加到当前的ListModel中。 而已。
即
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// Tname = name.getText(); // *** follow Java naming rules please
String tName = name.getText();
DefaultListModel model = (DefaultListModel) list.getModel();
model.addElement(tName);
}
执行此操作时请勿调用setModel(...)
,因为您已经在使用当前模型。
发生这种情况的原因是:
DefaultListModel model;
model = new DefaultListModel();
每次执行此行时,您都会创建一个新对象,因此列表中的旧信息消失了,
而是在构造函数中初始化模型,并仅将jButton1ActionPerformed用于添加元素。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.