利用JavaFx開發RIA桌面應用-Clipboard剪貼簿操作
阿新 • • 發佈:2019-01-04
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);
}
}
相關文章: