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

时间:2016-10-10 20:12:54

标签: java swing jtable substring jlist

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

列表值如下所示:

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

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

在表格中我有4行:

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

所以为了做到这一点,我必须按空格从列表中拆分字符串值,但由于地址文本字段包含空格(即123 Test St),与其他文本字段不同,我必须找出一种方法来拆分列表中的字符串,以便我可以设置Address,State,Zip和For Sale值。

这是我的代码段:

 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(" "),但是我需要处理Address值,因为它还包含多个空格,有没有更简单的方法呢?任何意见,将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:3)

  • 使用Home对象填充JList,而不是连接字符串
  • 使用自定义列表单元格渲染器显示从列表中的Home对象派生的串联String。
  • 然后当选择JList中的一个项目时,你有一个完整的Home对象,而不是一个String,并且创建你的JTable行应该是微不足道的。