Swing/MnemonicToolTip のバックアップ差分(No.1)
- バックアップ一覧
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- バックアップ を表示
- Swing/MnemonicToolTip へ行く。
- 追加された行はこの色です。
- 削除された行はこの色です。
TITLE:JToolTipにJButtonのMnemonicを表示 #navi(../) #tags() RIGHT:Posted by &author(aterai); at 2010-11-15 *JToolTipにJButtonのMnemonicを表示 [#ic2516e4] JButtonにMnemonicが設定されている場合、JToolTipにそれを表示します。 -&jnlp; -&jar; -&zip; //#screenshot #ref(http://lh5.ggpht.com/_9Z4BYR88imo/TQTP7StneAI/AAAAAAAAAew/RwPtDfNOEyg/s800/MnemonicToolTip.png) **サンプルコード [#t35bb5eb] #code(link){{ class MnemonicToolTip extends JToolTip { private final JLabel mnemonicLabel = new JLabel(); public MnemonicToolTip() { setLayout(new BorderLayout()); mnemonicLabel.setForeground(Color.GRAY); mnemonicLabel.setBorder(BorderFactory.createEmptyBorder(0,2,0,2)); add(mnemonicLabel, BorderLayout.EAST); } @Override public Dimension getPreferredSize() { Dimension d = super.getPreferredSize(); if(mnemonicLabel.isVisible()) { d.width += mnemonicLabel.getPreferredSize().width; } return d; } @Override public void setComponent(JComponent c) { if(c instanceof AbstractButton) { AbstractButton b = (AbstractButton)c; int mnemonic = b.getMnemonic(); if(mnemonic>0) { mnemonicLabel.setVisible(true); mnemonicLabel.setText("Alt+"+KeyEvent.getKeyText(mnemonic)); }else{ mnemonicLabel.setVisible(false); } } super.setComponent(c); } } }} **解説 [#gc7f8a7c] -上 --setToolTipTextで直接Mnemonicを追加 -下 --JToolTipにBorderLayoutを設定して、Mnemonic用のJLabelを追加 **参考リンク [#w7797da0] -[[JToolTipにアイコンを表示>Swing/ToolTipIcon]] **コメント [#ff0a0d99] #comment