Swing/TabThumbnail のバックアップ差分(No.3)
- バックアップ一覧
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- バックアップ を表示
- Swing/TabThumbnail へ行く。
- 1 (2006-07-31 (月) 12:28:44)
- 2 (2006-07-31 (月) 20:18:30)
- 3 (2007-08-05 (日) 21:41:21)
- 4 (2008-06-17 (火) 17:48:29)
- 5 (2010-11-21 (日) 00:28:08)
- 6 (2012-12-16 (日) 23:56:22)
- 7 (2013-02-27 (水) 13:46:49)
- 8 (2015-01-22 (木) 20:46:43)
- 9 (2015-01-23 (金) 19:19:31)
- 10 (2015-03-18 (水) 18:50:25)
- 11 (2017-01-26 (木) 17:56:26)
- 12 (2017-12-19 (火) 16:23:11)
- 13 (2018-10-30 (火) 16:35:11)
- 14 (2020-10-30 (金) 02:02:50)
- 15 (2022-09-22 (木) 20:50:58)
- 追加された行はこの色です。
- 削除された行はこの色です。
TITLE:JTabbedPaneのサムネイルをJToolTipsで表示 #navi(../) *JTabbedPaneのサムネイルをJToolTipsで表示 [#nb660cdb] >編集者:[[Terai Atsuhiro>terai]]~ 作成日:2006-07-31~ 更新日:&lastmod; #contents **概要 [#g4897f6f] ツールチップを使って、JTabbedPaneのサムネイルを表示します。 #screenshot **サンプルコード [#o54faaa7] #code{{ class MyTabbedPane extends JTabbedPane { private final JToolTip tip; private int current = -1; public MyTabbedPane() { super(); tip = super.createToolTip(); } public JToolTip createToolTip() { initToolTip(tip, current); return tip; } public String getToolTipText(MouseEvent e) { int index = indexAtLocation(e.getX(), e.getY()); String str = (current!=index)?null:super.getToolTipText(e); current = index; return str; } private final double scale = 0.2d; private void initToolTip(JToolTip tip, int index) { tip.removeAll(); JPanel panel = new JPanel(new BorderLayout()); if(index<0) { return; } String str = getTitleAt(index); panel.add(new JLabel(str), BorderLayout.NORTH); Component c = getComponentAt(index); if(c instanceof JScrollPane) { c = ((JScrollPane)c).getViewport().getView(); } final BufferedImage image = new BufferedImage( c.getWidth(), c.getHeight(), BufferedImage.TYPE_INT_ARGB); Graphics g = image.getGraphics(); c.paint(g); JPanel pnl = new JPanel() { public void paintComponent(Graphics g) { Graphics2D g2 = (Graphics2D) g; g2.scale(scale,scale); g2.drawImage(image, 0, 0, this); } }; pnl.setOpaque(true); panel.add(pnl, BorderLayout.CENTER); tip.setBorder(BorderFactory.createLineBorder(Color.BLACK)); tip.setLayout(new BorderLayout()); tip.add(panel, BorderLayout.CENTER); Dimension d = new Dimension( (int)(c.getWidth()*scale), (int)(c.getHeight()*scale)); tip.setPreferredSize(d); } } }} -&jnlp; -&jar; -&zip; **解説 [#neef6f6d] マウスカーソルをタブタイトルの上に持っていくと、タブ内部のコンポーネントを縮小してJToolTipに貼り付けています。 マウスカーソルがタブタイトル上にきた場合、そのタブ内部のコンポーネントを縮小してJToolTipに貼り付けています。 **参考リンク [#zffef92d] -[[デジタル出力工房 絵写楽>http://www.bekkoame.ne.jp/~bootan/free2.html]] -[[2000ピクセル以上のフリー写真素材集>http://sozai-free.com/]] -[[XP Style Icons - Windows Application Icon, Software XP Icons>http://www.icongalore.com/]] **コメント [#b9449f16] #comment