将选定的 jList 值拆分并移动到 jTable 行 (SWING)

Splitting and Moving selected jList value to jTable rows (SWING)

您好,我正在尝试制作一个程序,将选定的值从列表移动到 table。我可以将整个列表值添加到一行,但我想做的是将列表值拆分为一组字符串并将它们设置到 table 中的不同行。

列表值将如下所示:

123 Test St LA 1823 Yes
456 Test Dr NY 12345 No

该列表从文本字段(地址、州、邮编、待售)中获取值,并将其全部设置为仅由 spaces 分隔的一行字符串。

在 table 我有 4 行:

|Address|State|Zip| For Sale|
|------ +-----+---+---------|
|       |     |   |         |  

因此,为了做到这一点,我必须通过 space 从列表中拆分字符串值,但由于地址文本字段包含 spaces(即 123 Test St),这与其他文本不同字段,我必须想办法从列表中拆分字符串,以便我可以设置地址、州、邮政编码和待售值。

这是我的代码片段:

 private void addListActionPerformed(java.awt.event.ActionEvent evt) {                                          

    home.setAddress(address.getText());
    home.setState(state.getText());
    home.setZip(zip.getText()); 
    home.setSale(forSale.getText());

    String concat = home.getAddress() + " " +
                    home.getState() + " " +
                    home.getZip() + " " +
                    home.getSale();


    addVal(concat);

        address.setText("");    
        state.setText("");
        zip.setText("");
        forSale.setText("");

}    

private void addVal(String str) {
    jList1.setModel(dm);
    dm.addElement(str);
}

    private void addToTableActionPerformed(java.awt.event.ActionEvent evt) {                                            
    String s = jList1.getSelectedValue();
    //Split and set values and add to table
}  

我可以使用:String[] spaces = s.split(" "),但是我需要处理地址值,因为它也包含多个 space,有没有更简单的方法?任何意见,将不胜感激。谢谢!

  • 用 Home 对象而不是串联的字符串填充 JList
  • 使用自定义列表单元格渲染器显示从列表中的 Home 对象派生的串联字符串。
  • Then when an item in the JList is selected, you've got a full Home object, not a String, and creating your JTable row should be trivial.