java - 在Java中删除另一个对象后将一个对象添加到列表中

标签 java swing

我有这段代码,它创建一个列表:

rightPanel.add(Box.createRigidArea(new Dimension(20, 20)));
final DefaultListModel model = new DefaultListModel();
for(int i=0;i<nameData.length;i++){
    if(nameData[i]==null) break;
        model.addElement(nameData[i]);
    }
final JList list = new JList();
list.setModel(model);
JScrollPane listScroller = new JScrollPane(list);
listScroller.setPreferredSize(new Dimension(250, 80));
listScroller.setAlignmentX(LEFT_ALIGNMENT);
rightPanel.add(listScroller);

当我从该列表中选择对象时,我有一个按钮,可以通过它删除所选对象:

rightPanel.add(Box.createRigidArea(new Dimension(20, 20)));
final JButton deleteConfirmButton = new JButton("Kustuta");
deleteConfirmButton.setEnabled(false);
rightPanel.add(deleteConfirmButton);
deleteConfirmButton.addActionListener(new ActionListener() {

    public void actionPerformed(ActionEvent e)
    {
        model.removeElementAt(listIndex);
        nameData[listIndex] = null;
        deleteConfirmButton.setEnabled(false);
    }
});

但是删除对象后,当我尝试将新对象添加到列表组成的同一数组中时,它将不再显示列表中的更改。

最佳答案

这里:

//Adds the data from the textfield to corresponding string.
String name = nameTextField.getText();
String eMail = eMailTextField.getText();
String dateOfBirth = dateOfBirthTextField.getText();
String address = addressTextField.getText();

//Stores the string data in an array.
nameData[n] = name;
eMailData[n] = eMail;
dateOfBirthData[n] = dateOfBirth;
addressData[n] = address;

为什么你有大量的数组,例如nameData[]emailData[]等?难道不是更好地创建一个类来保存这些信息吗?例如:

class Data {

    String name;
    String email;
    Date dateOfBirth;
    String address;

    public Data(String name, String email, Date dateOfBirth, String address){ ... }

    // getters and setters here
}

然后在列表模型中,您可以添加 Data 对象,如下所示:

String name = nameTextField.getText();
String eMail = eMailTextField.getText();
String dateOfBirth = dateOfBirthTextField.getText();
String address = addressTextField.getText();

DefaultListModel model = (DefaultListModel)list.getModel();
model.add(new Data(name, eMail, dateOfBirth, address));

请仔细阅读How to Use Lists教程。这是你的 friend 。

关于java - 在Java中删除另一个对象后将一个对象添加到列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20050311/

相关文章:

java - 是否可以将 MapView 作为另一个 Activity 的元素包含在内?

java - 通过单击特定图像获取有关特定对象的信息

java - JFrame 周围的 LineBorder 消失

java - 使用 JExcelApi 将包含时间的 Excel 单元格值报告为 12 小时而不是 24 小时

java - JTextArea.setText 不可见

java - 为什么GC不清除Dialog引用?

java - GridLayout 在应该显示的时候没有显示在框架上

java - 下载文件并保存到光盘不起作用

java - 为java程序创建泛型类

java - 如何比较Java中的两个字符串日期?