Swing/DraggableLinkButton のバックアップソース(No.5)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- バックアップ を表示
- Swing/DraggableLinkButton へ行く。
- 1 (2007-12-03 (月) 14:41:28)
- 2 (2009-05-18 (月) 17:18:33)
- 3 (2013-01-27 (日) 19:48:01)
- 4 (2013-01-27 (日) 22:14:21)
- 5 (2013-01-29 (火) 15:30:53)
- 6 (2013-10-11 (金) 12:49:15)
- 7 (2014-11-08 (土) 01:41:12)
- 8 (2015-02-17 (火) 22:31:15)
- 9 (2016-11-11 (金) 14:43:45)
- 10 (2017-10-27 (金) 16:26:13)
- 11 (2017-11-21 (火) 16:07:06)
- 12 (2018-09-13 (木) 15:34:55)
- 13 (2019-04-19 (金) 13:43:27)
- 14 (2020-09-16 (水) 23:42:31)
- 15 (2022-03-24 (木) 15:59:24)
- 16 (2022-08-12 (金) 00:53:41)
- 17 (2023-08-25 (金) 19:08:59)
TITLE:TransferHandlerでHyperlinkをブラウザにドロップ #navi(../) #tags(TransferHandler, DataFlavor, Html, JButton) RIGHT:Posted by &author(aterai); at 2007-12-03 *TransferHandlerでHyperlinkをブラウザにドロップ [#w00349ec] ``JButton``に``TransferHandler``を設定して、ブラウザにリンクをドロップできるようにします。 -&jnlp; -&jar; -&zip; //#screenshot #ref(http://lh3.ggpht.com/_9Z4BYR88imo/TQTLyb41hvI/AAAAAAAAAYI/uoSzZ3thyWk/s800/DraggableLinkButton.png) **サンプルコード [#udf5497a] #code(link){{ final String href = "http://terai.xrea.jp/"; //final DataFlavor uriflavor = new DataFlavor(String.class, "text/uri-list"); final DataFlavor uriflavor = DataFlavor.stringFlavor; JButton b = new JButton(href); b.setTransferHandler(new TransferHandler("text") { public boolean canImport(JComponent c, DataFlavor[] flavors) { return (flavors.length>0 && flavors[0].equals(uriflavor)); } public Transferable createTransferable(JComponent c) { return new Transferable() { public Object getTransferData(DataFlavor flavor) { //System.out.println(flavor.getMimeType()); return href; } public DataFlavor[] getTransferDataFlavors() { return new DataFlavor[] { uriflavor }; } public boolean isDataFlavorSupported(DataFlavor flavor) { return flavor.equals(uriflavor); } }; } }); b.addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent e) { JButton button = (JButton)e.getSource(); TransferHandler handler = button.getTransferHandler(); handler.exportAsDrag(button, e, TransferHandler.COPY); } }); }} **解説 [#nd12fea7] 上記のサンプルでは、``JButton``をマウスでブラウザにドラッグ&ドロップすると、そのサイトに移動するようになっています。ここでは、``JButton``を使用していますが、``JLabel``などの他のコンポーネントでも同様の設定が可能です。 以下のような``TransferHandler``と``Transferable``を設定しています。 -転送するプロパティー -- ``text`` - ``DataFlavor`` -- ``DataFlavor.stringFlavor`` - 転送するデータ -- 文字列(``http://terai.xrea.jp/``) **参考リンク [#mab3f8d6] - [http://terai.xrea.jp/Swing/HyperlinkLabel.html Hyperlinkを、JLabel、JButton、JEditorPaneで表示] - [http://www.ne.jp/asahi/hishidama/home/tech/java/swing/TransferHandler.html Java Swing「ドラッグ&ドロップ」メモ(Hishidama's Swing-TransferHandler Memo)] **コメント [#a4ce95d5] - ``Opera``には、ドロップできないようです(``MIME``タイプを設定しないとダメ?)。 -- [[aterai]] &new{2007-12-03 (月) 14:41:28}; #comment