Swing/ClipboardService のバックアップ差分(No.1)
- バックアップ一覧
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- バックアップ を表示
- Swing/ClipboardService へ行く。
- 1 (2012-12-12 (水) 19:02:19)
- 2 (2014-12-11 (木) 15:01:37)
- 3 (2016-03-18 (金) 14:59:47)
- 4 (2017-07-25 (火) 14:50:08)
- 5 (2018-02-20 (火) 19:15:59)
- 6 (2018-06-28 (木) 13:26:24)
- 7 (2018-10-19 (金) 16:51:26)
- 8 (2020-10-18 (日) 18:43:28)
- 9 (2022-08-07 (日) 00:17:12)
- 10 (2025-01-03 (金) 08:57:02)
- 11 (2025-01-03 (金) 09:01:23)
- 12 (2025-01-03 (金) 09:02:38)
- 13 (2025-01-03 (金) 09:03:21)
- 14 (2025-01-03 (金) 09:04:02)
- 15 (2025-06-19 (木) 12:41:37)
- 16 (2025-06-19 (木) 12:43:47)
- 追加された行はこの色です。
- 削除された行はこの色です。
TITLE:ClipboardServiceでシステム全体の共有クリップボードにアクセスする #navi(../) RIGHT:Posted by &author(aterai); at 2012-04-30 *ClipboardServiceでシステム全体の共有クリップボードにアクセスする [#keb95371] ClipboardServiceを使って Java Web Start で動作中のアプリケーションからシステム全体の共有クリップボードにアクセスします。 -&jnlp; -&jar; -&zip; //#screenshot #ref(https://lh5.googleusercontent.com/--_lXbzG-H7g/T53noZrOnHI/AAAAAAAABME/FyY8MKdHSg0/s800/ClipboardService.png) **サンプルコード [#w95c9c42] #code(link){{ private ClipboardService cs; }} #code{{ try{ cs = (ClipboardService)ServiceManager.lookup("javax.jnlp.ClipboardService"); }catch(Throwable t) { cs = null; } JTextArea textArea = new JTextArea() { @Override public void copy() { if(cs != null) { cs.setContents(new StringSelection(getSelectedText())); } super.copy(); } @Override public void cut() { if(cs != null) { cs.setContents(new StringSelection(getSelectedText())); } super.cut(); } @Override public void paste() { if(cs != null) { Transferable tr = cs.getContents(); if(tr.isDataFlavorSupported(DataFlavor.stringFlavor)) { try{ getTransferHandler().importData(this, tr); }catch(Exception e) { e.printStackTrace(); } } }else{ super.paste(); } } }; }} **解説 [#z1e6e45a] Java Web Start から起動された制限付きのランタイム内で動作中するアプリケーションからは、システム全体の共有クリップボードにアクセスすることができないので、ServiceManagerからClipboardServiceを取得し、コピー、ペースト、カットなどでセキュリティ警告ダイアログを表示して、ユーザーにアクセス許可を求めます。 - Cutの例 -- アプリケーションのクリップボード --- セキュリティ警告でOK、取り消しのどちらを選択しても、JTextAreaの選択文字列はCutされ、アプリケーションのクリップボードは上書きされる -- システム全体の共有クリップボード -- セキュリティ警告でOKを選択するとシステム全体の共有クリップボードは上書きされ、取り消しを選択すると上書きされない **参考リンク [#n9de5723] - [http://docs.oracle.com/javase/jp/6/technotes/guides/javaws/developersguide/examples.html#ClipboardService ClipboardService サービスの使い方 - JNLP API の使用例] - [http://docs.oracle.com/javase/jp/6/technotes/guides/javaws/developersguide/contents.html Java Web Start 開発者ガイド] **コメント [#s3bd5228] #comment