将选定的 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.
您好,我正在尝试制作一个程序,将选定的值从列表移动到 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.