java swing text clipboard

Copiar texto al portapapeles con Java



swing clipboard (4)

Encontré una mejor manera de hacerlo para que pueda obtener una entrada de un txtbox o hacer que se genere algo en ese cuadro de texto y poder hacer clic en un botón para hacerlo. ¡Aquí está el código para copiar al portapapeles funcionando (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

Quiero copiar el texto de una celda de JTable al portapapeles, de modo que esté disponible para pegarlo en otros programas como Microsoft Word. Tengo el texto de JTable , pero no estoy seguro de cómo copiarlo en el portapapeles.


Esta es la respuesta aceptada escrita de una manera decorativa:

Toolkit.getDefaultToolkit() .getSystemClipboard() .setContents( new StringSelection(txtMySQLScript.getText()), null );


Esto funciona para mí y es bastante simple:

Importar estos:

import java.awt.datatransfer.*; import java.awt.Toolkit;

Y luego ponga este fragmento de código donde quiera alterar el portapapeles:

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);

Lo acabo de probar y funciona. Sin embargo, no estoy seguro de si existen algunas fallas de "mejores prácticas" en el código, ¡pero resolverá su problema!


La siguiente clase le permite copiar / pegar una Cadena en / del portapapeles.

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; } }