Quiero copiar el texto de una JTable
celda al portapapeles, de modo que esté disponible para pegarlo en otros programas como Microsoft Word. Tengo el texto del JTable
, pero no estoy seguro de cómo copiarlo en el portapapeles.
139
Esto funciona para mí y es bastante simple:
Importar estos:
import java.awt.datatransfer.StringSelection;
import java.awt.Toolkit;
import java.awt.datatransfer.Clipboard;
Y luego coloque este fragmento de código donde quiera alterar el portapapeles:
String myString = "This text will be copied into clipboard";
StringSelection stringSelection = new StringSelection(myString);
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
clipboard.setContents(stringSelection, null);
stringSelection
como el segundo argumentosetContents(..)
también, convirtiéndolo enClipboardOwner
, como en la respuesta vinculada, no tiene importancia: mirando la fuente , el único métodoClipboardOwner
que implementa, es decirlostOwnership(..)
, está vacío. Entonces, el segundo argumento parece ser una devolución de llamada completamente opcional.(-> (java.awt.Toolkit/getDefaultToolkit) .getSystemClipboard (.setContents (java.awt.datatransfer.StringSelection. "test") nil))
Esta es la respuesta aceptada escrita de manera decorativa:
fuente
La siguiente clase le permite copiar / pegar una Cadena en / desde el portapapeles.
fuente
OS X
mejor en caso de que no funcione correctamenteVK_CONTROL
porVK_META
si es macOS.Encontré una mejor manera de hacerlo para que pueda obtener una entrada de un cuadro de texto o hacer que se genere algo en ese cuadro de texto y poder hacer clic en un botón para hacerlo.
fuente
Para aplicaciones basadas en JavaFx .
Portapapeles puede guardar múltiples datos en varios formatos de datos como (html, url, texto plano, imagen).
Para más información ver documentación oficial
fuente