Chcę skopiować tekst z komórki JTable
do schowka, dzięki czemu można go wkleić do innych programów, takich jak Microsoft Word. Mam tekst z JTable
, ale nie jestem pewien, jak skopiować go do schowka.Kopiowanie tekstu do schowka za pomocą Java
Odpowiedz
To działa na mnie i jest dość prosta:
importu tych:
import java.awt.datatransfer.*;
import java.awt.Toolkit;
a następnie umieścić ten fragment kodu gdziekolwiek chcesz zmienić Schowek:
String myString = "This text will be copied into clipboard when running this code!";
StringSelection stringSelection = new StringSelection(myString);
Clipboard clpbrd = Toolkit.getDefaultToolkit().getSystemClipboard();
clpbrd.setContents(stringSelection, null);
Po prostu próbowałem i działa. Nie wiem, czy są jakieś błędy "dobrych praktyk", ale rozwiąże to Twój problem!
LH
następujące klasy pozwala na kopiowanie/wklejanie String do/ze schowka.
import java.awt.AWTException;
import java.awt.HeadlessException;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.StringSelection;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.awt.event.KeyEvent;
import java.io.IOException;
public class SystemClipboard
{
public static void copy(String text)
{
Clipboard clipboard = getSystemClipboard();
clipboard.setContents(new StringSelection(text), null);
}
public static void paste() throws AWTException
{
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_CONTROL);
robot.keyRelease(KeyEvent.VK_V);
}
public static String get() throws Exception
{
Clipboard systemClipboard = getSystemClipboard();
DataFlavor dataFlavor = DataFlavor.stringFlavor;
if (systemClipboard.isDataFlavorAvailable(dataFlavor))
{
Object text = systemClipboard.getData(dataFlavor);
return (String) text;
}
return null;
}
private static Clipboard getSystemClipboard()
{
Toolkit defaultToolkit = Toolkit.getDefaultToolkit();
Clipboard systemClipboard = defaultToolkit.getSystemClipboard();
return systemClipboard;
}
}
Może potrzebować trochę logiki do wklejenia w OS X, ponieważ jest wyjątkowy. –
Jest to przyjęta odpowiedź napisany w ozdobnym sposób:
Toolkit.getDefaultToolkit()
.getSystemClipboard()
.setContents(
new StringSelection(txtMySQLScript.getText()),
null
);
znalazłem lepszy sposób to zrobić, dzięki czemu można uzyskać wejście od txtbox lub coś być generowane w tym tekście i kliknij przycisk, aby to zrobić. Oto kod do skopiowania do schowka roboczego (2017/2018)!
import java.awt.datatransfer.*;
import java.awt.Toolkit;
private void /* Action performed when the copy to clipboard button is clicked */ {
String ctc = txtCommand.getText().toString();
StringSelection stringSelection = new StringSelection(ctc);
Clipboard clpbrd = Toolkit.getDefaultToolkit().getSystemClipboard();
clpbrd.setContents(stringSelection, null);
}
// txtCommand is the variable of a text box
Mam nadzieję, że to pomoże! – ElementCodez
Co masz na myśli przez "2017/2018"? Określona wersja Java? Którą wersję * użyłeś *, której używasz? –
- 1. Kopiowanie tekstu do schowka za pomocą Zero Schowek w ASP.NET
- 2. DataGridView: Kopiowanie zakończone do schowka
- 3. Android: Kopiowanie tekstu do schowka pod kątem API <11
- 4. Na click - kopiowanie do schowka
- 5. Rozszerzenie Chrome obsługuje kopiowanie obrazu do schowka?
- 6. Kopiowanie danych wyjściowych zmiennej JavaScript do schowka
- 7. Wyłącz automatyczne kopiowanie Intellij do schowka
- 8. Jak skopiować do schowka za pomocą GWT?
- 9. Kopiowanie klucza publicznego RSA do schowka
- 10. .gif Kopiowanie obrazów do schowka za pomocą UIPasteboard poprzez kod [iOS]
- 11. Pobieranie zawartości schowka z programu illustrator za pomocą java
- 12. Kopiowanie schowka z iOS Simulator na Maca?
- 13. Kopiowanie arkusza kalkulacyjnego za pomocą Apache POI
- 14. Czy mogę pobrać dane ze schowka za pomocą nowego ZeroClipboard?
- 15. Kopiowanie i wklejanie wielu elementów do schowka w IntelliJ IDEA
- 16. Skopiuj do schowka za pomocą javascript dla phonegap
- 17. Podział wiersza za pomocą schowka SetText
- 18. iPhone skopiować coś do schowka za pomocą kodu
- 19. Jak skopiować dane do schowka za pomocą Greasemonkey?
- 20. JavaFX TableView kopia do schowka
- 21. Kopiowanie obrazu za pomocą UIPasteBoard (Swift)
- 22. Kopiowanie tylko istniejących plików za pomocą robocopy
- 23. Ukrywanie tekstu za pomocą narzędzia QSyntaxHighlighter
- 24. Czy MFC zapewnia szybki sposób na wyrzucanie tekstu do schowka?
- 25. TCP Zero kopiowanie za pomocą zwiększenia
- 26. Kopiowanie pliku z jednego katalogu do drugiego za pomocą Ruby
- 27. WebKit na iPhone: czy możliwe jest kopiowanie tekstu do klipsu z JavaScriptem
- 28. Edycja tekstu w formacie PDF za pomocą Java
- 29. Schowek Kopiowanie obiektów do iz
- 30. Tłumaczenie tekstu za pomocą vba
możemy setContents() z właścicielami zbyt http://stackoverflow.com/questions/3591945/copying-to-clipboard-in-java –
@AquariusPower Wydaje się, że przechodząc 'stringSelection' jako 2 argument 'setContents (..)' zbyt, czyniąc go 'ClipboardOwner', jak w połączonej odpowiedzi, nie ma znaczenia: patrząc na [źródło] (http://grepcode.com/file/repository.grepcode.com/java /root/jdk/openjdk/8u40-b25/java/awt/datatransfer/StringSelection.java#StringSelection.lostOwnership%28java.awt.datatransfer.Clipboard%2Cjava.awt.datatransfer.Transferable%29), jedyna metoda obiektu 'ClipboardOwner 'że implementuje, mianowicie' lostOwnership (..) ', jest puste. Tak więc drugi argument wydaje się być całkowicie opcjonalnym wywołaniem zwrotnym. –
@EvgeniSergeev może się przydać, jeśli rozszerzymy StringSelection :) –