Quiero copiar el texto de una JTablecelda 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);
stringSelectioncomo el segundo argumentosetContents(..)también, convirtiéndolo enClipboardOwner, como en la respuesta vinculada, no tiene importancia: mirando la fuente , el único métodoClipboardOwnerque 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 Xmejor en caso de que no funcione correctamenteVK_CONTROLporVK_METAsi 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