Swing/TranslucentToolBar のバックアップソース(No.1)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- バックアップ を表示
- Swing/TranslucentToolBar へ行く。
- 1 (2011-09-19 (月) 17:00:43)
- 2 (2011-09-19 (月) 21:39:55)
- 3 (2012-12-18 (火) 19:22:21)
- 4 (2014-11-22 (土) 03:59:58)
- 5 (2014-12-09 (火) 21:07:10)
- 6 (2015-03-24 (火) 16:03:27)
- 7 (2015-04-08 (水) 17:12:58)
- 8 (2016-05-27 (金) 13:16:33)
- 9 (2017-08-12 (土) 21:46:39)
- 10 (2018-08-09 (木) 18:23:10)
- 11 (2019-05-22 (水) 19:35:38)
- 12 (2020-08-08 (土) 16:30:40)
- 13 (2022-01-01 (土) 01:39:43)
TITLE:JToolBarの半透明化とアニメーション #navi(../) RIGHT:Posted by [[aterai]] at 2011-09-19 *JToolBarの半透明化とアニメーション [#p4034716] コンポーネントにマウスカーソルがある場合だけ表示される半透明のJToolBarを追加します。 -&jnlp; -&jar; -&zip; //#screenshot #ref(https://lh5.googleusercontent.com/-36mkZfbor58/Tnb1d-2vaPI/AAAAAAAABCM/Hoor7aG7K-g/s800/TranslucentToolBar.png) **サンプルコード [#e2dd3103] #code{{ class ImageCaptionLabel extends JLabel implements HierarchyListener { private float alpha = 0.0f; private javax.swing.Timer animator; private int yy = 0; private JToolBar toolBox = new JToolBar() { @Override protected void paintComponent(Graphics g) { Graphics2D g2 = (Graphics2D)g; g2.setPaint(getBackground()); g2.fillRect(0, 0, getWidth(), getHeight()); super.paintComponent(g); } }; public ImageCaptionLabel(String caption, Icon image) { setIcon(image); toolBox.setFloatable(false); toolBox.setOpaque(false); toolBox.setBackground(new Color(0,0,0,0)); toolBox.setForeground(Color.WHITE); toolBox.setBorder(BorderFactory.createEmptyBorder(2,4,4,4)); //toolBox.setLayout(new BoxLayout(toolBox, BoxLayout.X_AXIS)); toolBox.add(Box.createGlue()); toolBox.add(makeToolButton("ATTACHMENT_16x16-32.png")); toolBox.add(Box.createHorizontalStrut(2)); toolBox.add(makeToolButton("RECYCLE BIN - EMPTY_16x16-32.png")); MouseAdapter ma = new MouseAdapter() { @Override public void mouseEntered(MouseEvent e) { dispatchMouseEvent(e); } @Override public void mouseExited(MouseEvent e) { dispatchMouseEvent(e); } private void dispatchMouseEvent(MouseEvent e) { Component src = e.getComponent(); Component tgt = ImageCaptionLabel.this; tgt.dispatchEvent(SwingUtilities.convertMouseEvent(src, e, tgt)); } }; toolBox.addMouseListener(ma); //...... }} **解説 [#xb67dfb3] 上記のサンプルでは、画像を表示したJLabelに半透明にしたJToolBarを追加しています。 - 参考 -- JToolBarなどの透明化は、[[JMenuBarの背景に画像を表示する>Swing/MenuBarBackground]] -- 表示アニメーションは、[[JTextAreaをキャプションとして画像上にスライドイン>Swing/EaseInOut]] -- [[JToolBar内部のJButtonは、JButtonの描画>Swing/ButtonPainted]] **参考リンク [#f68df189] - [http://chrfb.deviantart.com/art/quot-ecqlipse-2-quot-PNG-59941546 "ecqlipse 2" PNG by ~chrfb on deviantART] **コメント [#xb3bce6b] #comment