Clipboard:Toolkit.getDefaultToolkit().getSystemClipboard() 取得系統剪貼板。StringSelection:實作 Transferable,封裝純文字。DataFlavor.stringFlavor:標準文字數據格式。String sel = textArea.getSelectedText();
StringSelection ss = new StringSelection(sel);
clipboard.setContents(ss, ss); // 第二參數為擁有者
if (isCut) textArea.replaceRange("", start, end);
Transferable t = clipboard.getContents(this);
if (t.isDataFlavorSupported(DataFlavor.stringFlavor)) {
String s = (String) t.getTransferData(DataFlavor.stringFlavor);
textArea.replaceRange(s, start, end);
}
繼承 Frame,建立選單列(Edit → Cut/Copy/Paste),TextArea 為編輯區,各選單項註冊對應 ActionListener 內部類。
DataFlavor 機制支援圖片、檔案清單、自定義物件等豐富格式,未來可擴展更多類型。