いまJTextAreaでファイルをドロップしたらファイルの内容が貼り付けられるようにしたのですが、そうするとCtrl+cでコピー等のショートカットが使えなくなってしまいました。 ファイルのドロップもショートカットも両方使えるようにしたいのですがどうしたら良いでしょうか? 以下のクラスをJTextAreaにsetTransferHandlerで設定してます。 public class TextAreaDropHandler extends TransferHandler{ private JTextArea textArea = null; public TextAreaDropHandler(JTextArea textArea){ this.textArea = textArea; } @Override public boolean canImport(TransferSupport support){ if(!support.isDrop()){ return false; } if(!support.isDataFlavorSupported(DataFlavor.javaFileListFlavor)){ return false; } return true; } @Override public boolean importData(TransferSupport support) { if(!canImport(support)){ return false; } //ドロップ処理 if(support.isDrop()){ Transferable t = support.getTransferable(); try { List files = (List) t.getTransferData(DataFlavor.javaFileListFlavor); File firstFile = files.get(0); String allText = ""; Scanner scan = new Scanner(firstFile); while(scan.hasNextLine()){ allText += scan.nextLine(); allText += "\n"; } scan.close(); textArea.setText(allText); } catch (UnsupportedFlavorException | IOException e) { e.printStackTrace(); } } return true; } }
↧