簡體   English   中英

如何將多行從TextField添加到JList

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM