1. 程式人生 > >利用JavaFx開發RIA桌面應用-Clipboard剪貼簿操作

利用JavaFx開發RIA桌面應用-Clipboard剪貼簿操作

1.操作效果

滑鼠移至文字控制元件處,雙擊滑鼠左鍵複製文字內容。文字複製成功時,文字內容加粗效果。

待貼上文字顯示框:
這裡寫圖片描述

雙擊滑鼠左鍵進行貼上,文字加粗:
這裡寫圖片描述

貼上內容至輸入框:
這裡寫圖片描述

2.實現方式

主要利用了javaFx提供的Clipboard類,首先是對待複製文字進行監聽雙擊事件:

import javafx.event.EventHandler;
import javafx.scene.input.Clipboard;
import javafx.scene.input.ClipboardContent;
import javafx.scene.input.MouseEvent;
import
javafx.scene.paint.Paint; import javafx.scene.text.Text; /** * Created by loongshawn on 2016/11/23. * * NOTE 貼上板監聽 */ public class ClipboardEvent implements EventHandler<MouseEvent> { Text text; public ClipboardEvent(Text text){ this.text = text; } public void handle
(MouseEvent event) { if (event.getClickCount() == 2) { Paint paint = text.getFill(); Clipboard clipboard = Clipboard.getSystemClipboard(); ClipboardContent clipboardContent = new ClipboardContent(); clipboardContent.putString(text.getText()); clipboard.setContent(clipboardContent); text.setStroke(paint); } else
{ text.setStroke(null); } } }

其中text.setStroke(paint)及text.setStroke(null)是對貼上成功的文字顯示加粗效果。然後加粗後,滑鼠不在文字上方時取消效果。

import javafx.event.EventHandler;
import javafx.scene.input.MouseEvent;
import javafx.scene.text.Text;

/**
 * Created by loongshawn on 2016/11/23.
 *
 * NOTE 輸出框滑鼠移至text範圍外取消SMOKE效果
 */
public class ClipboardMouseExitedEvent implements EventHandler<MouseEvent> {

    Text text;

    public ClipboardMouseExitedEvent(Text text){
        this.text = text;
    }

    public void handle(MouseEvent event) {
        text.setStroke(null);
    }
}

相關文章: