Я хочу скопировать текст из ячейки JTable
в буфер обмена, сделав его доступным для вставки в другие программы, такие как Microsoft Word. У меня есть текст из JTable
, но я не уверен, как его скопировать в буфер обмена.
Копирование текста в буфер обмена с использованием Java
Ответ 1
Это работает для меня и довольно просто:
Импортируйте эти:
import java.awt.datatransfer.StringSelection;
import java.awt.Toolkit;
А затем поместите этот фрагмент кода туда, где вы хотите изменить буфер обмена:
String myString = "This text will be copied into clipboard";
StringSelection stringSelection = new StringSelection(myString);
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
clipboard.setContents(stringSelection, null);
Ответ 2
Следующий класс позволяет скопировать/вставить строку в/из буфера обмена.
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;
}
}
Ответ 3
Это принятый ответ, написанный декоративно:
Toolkit.getDefaultToolkit()
.getSystemClipboard()
.setContents(
new StringSelection(txtMySQLScript.getText()),
null
);
Ответ 4
Я нашел лучший способ сделать это, чтобы вы могли получить информацию из 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
Ответ 5
String text = Toolkit.getDefaultToolkit()
.getSystemClipboard()
.setContents(
new StringSelection(Jtextbox1.getText()),
null
);
System.out.println(text);