/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package open.dolphin.utilities.control; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics; import javax.swing.*; /** * ツールチップ拡張クラス * @author S.Oh@Life Sciences Computing Corporation. */ public class ToolTipEx extends JToolTip { private Color foreColor; private Color backColor; /** * コンストラクタ * @param fore 文字色 * @param back 背景色 */ public ToolTipEx(Color fore, Color back) { super(); foreColor = fore; backColor = back; } /** * 画像ツールチップの作成 * @param icon アイコン * @return ツールチップ */ public JToolTip CreateImageToolTip(ImageIcon icon) { final JLabel iconLabel = new JLabel(icon); iconLabel.setBorder(BorderFactory.createEmptyBorder(1,1,1,1)); LookAndFeel.installColorsAndFont(iconLabel, "ToolTip.background", "ToolTip.foreground", "ToolTip.font"); JToolTip tooltip = new JToolTip() { @Override public Dimension getPreferredSize() { return getLayout().preferredLayoutSize(this); } @Override public void setTipText(final String tipText) { String oldValue = iconLabel.getText(); iconLabel.setText(tipText); firePropertyChange("tiptext", oldValue, tipText); } }; tooltip.setComponent(this); tooltip.setLayout(new BorderLayout()); tooltip.add(iconLabel); tooltip.setForeground(foreColor); tooltip.setBackground(backColor); return tooltip; } /** * 描画 * @param g グラフィック */ @Override public void paint(Graphics g) { setForeground(foreColor); setBackground(backColor); super.paint(g); } public static void main( String[] args ) { //JFrame frame = new JFrame(); //JScrollPane pane = new JScrollPane(new JTable() { // @Override // public JToolTip createToolTip() { // if(アイコン) { // ImageIconEx icon = new ImageIconEx(); // ToolTipEx tool = new ToolTipEx(Color.BLACK, Color.WHITE); // return tool.CreateImageToolTip(icon.getIcon()); // }else if(テキスト) { // return new ToolTipEx(Color.BLACK, Color.WHITE); // } // return null; // } // // @Override // public String getToolTipText(MouseEvent e) { // String ret = null; // if(テキスト) { // Object obj = this.getModel().getValueAt(rowAtPoint(e.getPoint()), columnAtPoint(e.getPoint())); // if(obj instanceof ImageIconEx) { // ImageIconEx icon = (ImageIconEx)this.getModel().getValueAt(rowAtPoint(e.getPoint()), columnAtPoint(e.getPoint())); // ret = icon.getText(); // }else{ // ret = (String)this.getModel().getValueAt(rowAtPoint(e.getPoint()), columnAtPoint(e.getPoint())); // if(ret.isEmpty()) return null; // } // }else if(アイコン) { // ret = ""; // } // return ret; // } //}); } }