Kullanıcının satırları seçip Tablo Görünümü'nden kopyalamasına izin vermek mümkün mü?JavaFX TableView panoya kopyala
6
A
cevap
0
Emin değilim ama sanırım javafx.scene.input.Clipboard burada size yardımcı olabilir.
9
tableView.getSelectionModel().setCellSelectionEnabled(true);
tableView.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE);
MenuItem item = new MenuItem("Copy");
item.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
ObservableList<TablePosition> posList = tableView.getSelectionModel().getSelectedCells();
int old_r = -1;
StringBuilder clipboardString = new StringBuilder();
for (TablePosition p : posList) {
int r = p.getRow();
int c = p.getColumn();
Object cell = tableView.getColumns().get(c).getCellData(r);
if (cell == null)
cell = "";
if (old_r == r)
clipboardString.append('\t');
else if (old_r != -1)
clipboardString.append('\n');
clipboardString.append(cell);
old_r = r;
}
final ClipboardContent content = new ClipboardContent();
content.putString(clipboardString.toString());
Clipboard.getSystemClipboard().setContent(content);
}
});
ContextMenu menu = new ContextMenu();
menu.getItems().add(item);
tableView.setContextMenu(menu);
3
TableView tableView = new TableView();
tableView.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE);
MenuItem item = new MenuItem("Copy");
item.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
ObservableList rowList = (ObservableList) tableView.getSelectionModel().getSelectedItems();
StringBuilder clipboardString = new StringBuilder();
for (Iterator it = rowList.iterator(); it.hasNext();) {
ObservableList<Object> row = (ObservableList<Object>) it.next();
for (Object cell : row) {
if (cell == null) {
cell = "";
}
clipboardString.append(cell);
clipboardString.append('\t');
}
clipboardString.append('\n');
}
final ClipboardContent content = new ClipboardContent();
content.putString(clipboardString.toString());
Clipboard.getSystemClipboard().setContent(content);
}
});
ContextMenu menu = new ContextMenu();
menu.getItems().add(item);
tableView.setContextMenu(menu);
}
şöyle giderse, ben benim için derleme değil, Yelliver en Cevap uygulayamaz olabilir, ama Tableview çoklu seçilen verileri panoya çıkartmanın başka çok net yolunu buldu
Size yardımcı olabilir, ya da kolayca TabloView'ın verilerini kopyalamaya çalışan herkes yardımcı olabilir
1
yelliver'in çözümü yalnızca seçili hücrelerin içeriğini kopyalar, ancak açıkça yalnızca açıkça tıklanan hücrelerin seçildiği kabul edilir. Roberto'nun çözümü sadece tabloda tutulan nesneler tekrarlanabilirse işe yarar. Burada kopyaları seçilen satır tüm hücreler veri genel bir çözüm:
@SuppressWarnings("rawtypes")
public void copySelectionToClipboard(final TableView<?> table) {
final Set<Integer> rows = new TreeSet<>();
for (final TablePosition tablePosition : table.getSelectionModel().getSelectedCells()) {
rows.add(tablePosition.getRow());
}
final StringBuilder strb = new StringBuilder();
boolean firstRow = true;
for (final Integer row : rows) {
if (!firstRow) {
strb.append('\n');
}
firstRow = false;
boolean firstCol = true;
for (final TableColumn<?, ?> column : table.getColumns()) {
if (!firstCol) {
strb.append('\t');
}
firstCol = false;
final Object cellData = column.getCellData(row);
strb.append(cellData == null ? "" : cellData.toString());
}
}
final ClipboardContent clipboardContent = new ClipboardContent();
clipboardContent.putString(strb.toString());
Clipboard.getSystemClipboard().setContent(clipboardContent);
}
Ctrl + C kopyalama etkinleştirmek için
final KeyCodeCombination keyCodeCopy = new KeyCodeCombination(KeyCode.C, KeyCombination.CONTROL_ANY);
table.setOnKeyPressed(event -> {
if (keyCodeCopy.match(event)) {
copySelectionToClipboard(table);
}
});
eklemek
İlgili konular
- 1. Görüntüyü Panoya kopyala Python3
- 2. Kopyalama alanı panoya kopyala
- 3. Görüntü kaydetme Panoya Kopyala
- 4. Görüntüyü panoya kopyala
- 5. Hata ayıklama konsolu panoya kopyala
- 6. Seçilen Alanın metnini panoya kopyala
- 7. Bootstrap içindeki panoya kopyala 3
- 8. JavaFX TableView paginator
- 9. SimpleStringProperty ve SimpleIntegerProperty TableView JavaFX
- 10. JavaFX TableView yüksek sıklıkta güncellemeler
- 11. Metni Panoya Kopyala UITextView UIButton üzerinden mi?
- 12. Mobil cihazlarda da çalışan panoya kopyala?
- 13. Windows 7'yi kullanarak IPython'dan panoya kopyala
- 14. Windows için Bash kullanarak panoya kopyala
- 15. babun: kopyala/yapıştır penceresinden panoya vim içine?
- 16. JavaFX Tableview ve ScrollPane kaydırma sorunu
- 17. Bir JavaFX Tablosundaki Bir Ekrandaki Öğeleri TableView
- 18. javafx TableView Boyutunu gerekli boyuta nasıl sınırlarsınız?
- 19. JavaFX 2 tek sütunlu TableView oluşturmak
- 20. JavaFX TableView Hücrelerinin font rengini ayarlama?
- 21. javafx tableview otomatik son kaydırmaya git
- 22. Bir JavaFX 8 öğelerini sıralamayı durdurma TableView
- 23. Yazı panoya panoya kopyala ve bu panodaki verileri oku iOS Video
- 24. Panoya Kopyala yapıştır görüntülemeyi Android'de kullanma Pano Yöneticisi
- 25. Javafx
- 26. JavaFX TableView Tek tıklatma ve otomatik ekleme satırı ile düzenle?
- 27. FXML (JavaFX)
- 28. sıralama tableview (satırlar)
- 29. Temizle Seçimi javafx
- 30. TableView boş olup olmadığını nasıl anlarım?