JavaFx实现快捷键贴图

javafx 文章 2022-03-14 10:46 0 全屏看文

前几天三叔工具箱的OCR里追加了Ctrl+V粘贴识别图片的功能。

但是不知道是不是权限问题,等插件载入容器后居然失效了。

这里贴出代码,给后来者参考参考。

首先引入必要包:

import javafx.scene.input.KeyCode;
import javafx.scene.Scene;
import javafx.scene.input.KeyCodeCombination;
import javafx.scene.input.KeyCombination;
import javafx.scene.input.Clipboard;

然后定义组合快捷键

private KeyCombination CTRL_V = new KeyCodeCombination(KeyCode.V, KeyCombination.SHORTCUT_DOWN);

最后编写调用方法:

//注册Ctrl+V调用事件
public void initEvent(Scene scene) {
		scene.getAccelerators().put(CTRL_V,()->pasteImg());
}
	
private void pasteImg() {
	 Clipboard clipboard = Clipboard.getSystemClipboard();
	 if(!clipboard.hasImage()) {
		 FxAlerts.error("粘贴板中不包含图片");
		 return;
	 }
	 
	  Image img = clipboard.getImage();
   	
		ImageView imageView = new ImageView();
		imageView.setImage(img);
		if(img.getWidth()>443)
			imageView.setFitWidth(433D);
		panelImg.getChildren().add(imageView);
}


-EOF-