मैं टेक्स्ट JTable
को क्लिपबोर्ड पर कॉपी करना चाहता हूं , जिससे यह माइक्रोसॉफ्ट वर्ड जैसे अन्य कार्यक्रमों में चिपकाया जा सके। मेरे पास से पाठ है JTable
, लेकिन मैं अनिश्चित हूं कि इसे क्लिपबोर्ड पर कैसे कॉपी किया जाए।
मैं टेक्स्ट JTable
को क्लिपबोर्ड पर कॉपी करना चाहता हूं , जिससे यह माइक्रोसॉफ्ट वर्ड जैसे अन्य कार्यक्रमों में चिपकाया जा सके। मेरे पास से पाठ है JTable
, लेकिन मैं अनिश्चित हूं कि इसे क्लिपबोर्ड पर कैसे कॉपी किया जाए।
जवाबों:
यह मेरे लिए काम करता है और काफी सरल है:
इन्हें आयात करें:
import java.awt.datatransfer.StringSelection;
import java.awt.Toolkit;
import java.awt.datatransfer.Clipboard;
और फिर कोड का यह स्निपेट जहां भी आप क्लिपबोर्ड को बदलना चाहते हैं:
String myString = "This text will be copied into clipboard";
StringSelection stringSelection = new StringSelection(myString);
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
clipboard.setContents(stringSelection, null);
stringSelection
2 तर्क के रूप में setContents(..)
भी गुजर रहा है, इसे बनाने के ClipboardOwner
रूप में, जुड़े हुए उत्तर में, इसका कोई महत्व नहीं है: स्रोत को देखते हुए , इसका एकमात्र तरीका ClipboardOwner
जो इसे लागू करता है, अर्थात्, lostOwnership(..)
खाली है। तो, दूसरा तर्क पूरी तरह से वैकल्पिक कॉलबैक लगता है।
(-> (java.awt.Toolkit/getDefaultToolkit) .getSystemClipboard (.setContents (java.awt.datatransfer.StringSelection. "test") nil))
यह एक सजावटी तरीके से लिखा गया स्वीकृत उत्तर है:
Toolkit.getDefaultToolkit()
.getSystemClipboard()
.setContents(
new StringSelection(txtMySQLScript.getText()),
null
);
निम्न वर्ग आपको क्लिपबोर्ड से स्ट्रिंग को कॉपी / पेस्ट करने की अनुमति देता है।
import java.awt.*;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.StringSelection;
import static java.awt.event.KeyEvent.*;
import static org.apache.commons.lang3.SystemUtils.IS_OS_MAC;
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();
int controlKey = IS_OS_MAC ? VK_META : VK_CONTROL;
robot.keyPress(controlKey);
robot.keyPress(VK_V);
robot.keyRelease(controlKey);
robot.keyRelease(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();
return defaultToolkit.getSystemClipboard();
}
}
OS X
यह ठीक से काम नहीं करने के मामले में बेहतर समर्थन करने के लिए एक संपादन का सुझाव देने के लिए स्वतंत्र महसूस हो रहा है
VK_CONTROL
, VK_META
तो इसके लिए स्वैप करना है ।
मुझे इसे करने का एक बेहतर तरीका मिला ताकि आप txtbox से एक इनपुट प्राप्त कर सकें या उस टेक्स्ट बॉक्स में कुछ उत्पन्न किया जा सके और इसे करने के लिए एक बटन क्लिक कर सकें।
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
के लिए JavaFX आधारित अनुप्रयोगों।
//returns System Clipboard
final Clipboard clipboard = Clipboard.getSystemClipboard();
// ClipboardContent provides flexibility to store data in different formats
final ClipboardContent content = new ClipboardContent();
content.putString("Some text");
content.putHtml("<b>Some</b> text");
//this will be replaced by previous putString
content.putString("Some different text");
//set the content to clipboard
clipboard.setContent(content);
// validate before retrieving it
if(clipboard.hasContent(DataFormat.HTML)){
System.out.println(clipboard.getHtml());
}
if(clipboard.hasString()){
System.out.println(clipboard.getString());
}
ClipboardContent कई डेटा फॉर्मेट (html, url, प्लेन टेक्स्ट, इमेज) में कई डेटा सेव कर सकता है।
अधिक जानकारी के लिए आधिकारिक दस्तावेज देखें