Swing/SystemClipboard のバックアップソース(No.1)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- バックアップ を表示
- Swing/SystemClipboard へ行く。
- 1 (2012-12-27 (木) 07:41:01)
- 2 (2014-10-11 (土) 16:46:15)
- 3 (2014-12-31 (水) 01:40:40)
- 4 (2015-03-03 (火) 14:14:44)
- 5 (2015-03-29 (日) 15:22:38)
- 6 (2017-02-14 (火) 14:19:48)
- 7 (2017-10-22 (日) 18:43:14)
- 8 (2018-06-28 (木) 13:26:32)
- 9 (2019-04-19 (金) 13:43:27)
- 10 (2020-06-14 (日) 17:06:39)
- 11 (2021-11-30 (火) 07:17:01)
TITLE:Clipboardから文字列や画像を取得する #navi(../) #tags() RIGHT:Posted by &author(aterai); at 2010-09-27 *Clipboardから文字列や画像を取得する [#ea481a83] Clipboardから文字列や画像データを取得し、JLabelに表示します。 -&jnlp; -&jar; -&zip; //#screenshot #ref(http://lh6.ggpht.com/_9Z4BYR88imo/TQTUB2-qFWI/AAAAAAAAAlY/hlwTEjnyC_g/s800/SystemClipboard.png) **サンプルコード [#y98eaa92] #code(link){{ private ClipboardService cs = null; public JComponent makeUI() { try{ cs = (ClipboardService)ServiceManager.lookup("javax.jnlp.ClipboardService"); }catch(UnavailableServiceException e) { cs = null; } JPanel p = new JPanel(new BorderLayout()); p.add(new JScrollPane(label)); p.add(new JButton(new AbstractAction("get Clipboard DataFlavor") { @Override public void actionPerformed(ActionEvent e) { try { Transferable t = (cs==null) ?Toolkit.getDefaultToolkit().getSystemClipboard().getContents(null) :cs.getContents(); if(t==null) { java.awt.Toolkit.getDefaultToolkit().beep(); return; } String str = ""; ImageIcon image = null; if(t.isDataFlavorSupported(DataFlavor.imageFlavor)) { image = new ImageIcon((Image)t.getTransferData(DataFlavor.imageFlavor)); }else if(t.isDataFlavorSupported(DataFlavor.stringFlavor)) { str = (String)t.getTransferData(DataFlavor.stringFlavor); } label.setText(str); label.setIcon(image); }catch(Exception ex) { ex.printStackTrace(); } } }), BorderLayout.SOUTH); return p; } }} **解説 [#wc0fc224] 上記のサンプルをWeb Startで実行した場合は、Toolkit.getDefaultToolkit().getSystemClipboard().getContents(null)ではなく、ClipboardService#getContents()を使って、Transferableを取得するようになっています。 -文字列 --Transferable#getTransferData(DataFlavor.stringFlavor) -画像 --Transferable#getTransferData(DataFlavor.imageFlavor) **参考リンク [#offe3c4c] -[http://www.ne.jp/asahi/hishidama/home/tech/java/clipboard.html Javaクリップボードメモ(Hishidama's Java Clipboard Memo)] **コメント [#u9d01034] #comment