我试图实现一个代码,允许用户从tableview中复制值并将值粘贴到javafx中的Listview中。第一部分我已经成功实现了它,即我在tableview中创建了一个上下文菜单(Copy),并将值传给了剪贴板。
这是代码
public void allowCopyAndPaste(){
MenuItem item = new MenuItem("Copy");
item.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
//ObservableList rowList = (ObservableList) scheduledCitizenTable.getSelectionModel().getSelectedItems();
StringBuilder clipboardString = new StringBuilder();
for (citizen cell : scheduledCitizenTable.getSelectionModel().getSelectedItems()) {
if (cell == null) {
cell = null;
}
clipboardString.append(cell.getCitizenName());
clipboardString.append('\t');
}
clipboardString.append('\n');
final ClipboardContent content = new ClipboardContent();
content.putString(clipboardString.toString());
Clipboard.getSystemClipboard().setContent(content);
System.out.println("testing paste"+content.size());
}
});
ContextMenu menu = new ContextMenu();
menu.getItems().add(item);
scheduledCitizenTable.setContextMenu(menu);
}
现在问题的最后一部分,我想将从剪贴板获得的值粘贴到列表视图中 下面是listview的代码
public class EmployeeScheduledController implements Initializable {
@FXML
private JFXListView<String> employeeS;
@Override
public void initialize(URL url, ResourceBundle rb) {
// TODO
}
}
总的来说,我只需要在listview中粘贴剪贴板中的值。有什么帮助吗?
我在隧道中发现了一盏灯,所以我现在所做的就是将剪贴板设置为公共静态,然后当列表框窗口打开时将剪贴板中获得的值设置为列表框< / p>
employeeS.getItems().add(citizen.content.getString());
请注意,citizen是该类的对象,其中有表,employeeS是列表框
我现在遇到的困难是如何制作从tableview复制的每一行?
content = "Tom Jones James Alfred George"
例如,假设我已经从表中复制了内容,现在我想把它放在listview中,它会把整个字符串放在tableview中的单元格被连在一起,我需要放入例如,索引0的列表视图中的Tom,索引1的Listview中的Jones等...
答案 0 :(得分:0)
到目前为止,你已经完成了艰难的任务。 因此,由于您能够复制所有内容,因此粘贴和拆分内容非常简单。 您所要做的就是从空格中分割内容字符串。你可以通过这样做来实现这个目标,
String[] names = content.split("\\s");
现在您可以使用foreach循环填充列表
for(String name : names){
//put name into listView
}
修改强>
为避免名称冲突,最好附加符号或数字(或其他内容)。所以在我的情况下,在一个名字之后,我会附加'&amp;'签到剪贴板字符串。所以它看起来像,
clipboardString.append(cell.getCitizenName());
clipboardString.append("&");
所以在那之后,使用上面给出的相同逻辑,你可以将其拆分为,
String[] names = content.split("&");
然后您可以使用foreach循环填充列表视图