4 ответов:
это работает для меня и это довольно просто:
импортировать эти:
import java.awt.datatransfer.*; import java.awt.Toolkit;а затем поместите этот фрагмент кода туда, где вы хотите изменить буфер обмена:
String myString = "This text will be copied into clipboard when running this code!"; StringSelection stringSelection = new StringSelection(myString); Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); clipboard.setContents(stringSelection, null);Я только что попробовал, и это работает. Не уверен, что есть некоторые "лучшие практики" недостатки в коде, хотя, но это решит вашу проблему!
следующий класс позволяет копировать / вставлять строку в / из буфера обмена.
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; } }
это принятый ответ, написанный декоративным способом:
Toolkit.getDefaultToolkit() .getSystemClipboard() .setContents( new StringSelection(txtMySQLScript.getText()), null );
Я нашел лучший способ сделать это, так что вы можете получить ввод от txtbox или еще что-то быть создан в текстовом поле и нажать кнопку, чтобы сделать это. Вот код для копирования в буфер обмена работает (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
Comments