⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tooltipshack.java

📁 oraily的Swing hacks code
💻 JAVA
字号:
import javax.swing.*;import java.awt.*;import java.awt.geom.*;public class ToolTipsHack {        public static void main(String[] args) {        RepaintManager.setCurrentManager(new FullRepaintManager());		System.out.println(" light = " + ToolTipManager.sharedInstance().isLightWeightPopupEnabled());		ToolTipManager.sharedInstance().setLightWeightPopupEnabled(true);		System.out.println(" light = " + ToolTipManager.sharedInstance().isLightWeightPopupEnabled());        JButton button;                        JFrame frame = new JFrame("Tool Tips Hack");        BoxLayout layout =  new BoxLayout(            frame.getContentPane(),            BoxLayout.Y_AXIS);        frame.getContentPane().setLayout(layout);                button = new CustomJButton();        button.setText("Open");        button.setToolTipText("Open an existing file");        frame.getContentPane().add(button);                button = new CustomJButton();        button.setText("Save");        button.setToolTipText("Save the currently open file");        frame.getContentPane().add(button);                        frame.getContentPane().add(new JLabel("a label"));        frame.getContentPane().add(new JLabel("a label"));        frame.getContentPane().add(new JLabel("a label"));                        frame.pack();		frame.setSize(400,400);        frame.show();		System.out.println(" light = " + ToolTipManager.sharedInstance().isLightWeightPopupEnabled());    }        }class CustomJButton extends JButton {    JToolTip _tooltip;        public CustomJButton() {        _tooltip = new CustomToolTip();        _tooltip.setComponent(this);		System.out.println("tooltip = " + _tooltip);		System.out.println(" tooltip = " + _tooltip.isLightweight());    }        public JToolTip createToolTip() {        return _tooltip;    }    }class CustomToolTip extends JToolTip {    public CustomToolTip() {        super();        this.setOpaque(false);		System.out.println("light = " + this.isLightweight());		System.out.println(" light  x = " + ToolTipManager.sharedInstance().isLightWeightPopupEnabled());    }        public Dimension getPreferredSize() {        Dimension dim = super.getPreferredSize();        return new Dimension((int)dim.getWidth()+20,(int)dim.getHeight()+20);    }    public void paintComponent(Graphics g) {        // set the parent opaque        Component parent = this.getParent();        if(parent != null) {            if(parent instanceof JComponent) {                JComponent jparent = (JComponent)parent;                if(jparent.isOpaque()) {                    jparent.setOpaque(false);                }            }        }                // create a round rectangle        Shape round = new RoundRectangle2D.Float(4,4,            this.getWidth()-1-8,            this.getHeight()-1-8,            15,15);                // draw the white background        Graphics2D g2 = (Graphics2D)g;        g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,            RenderingHints.VALUE_ANTIALIAS_ON);        g2.setColor(Color.white);        g2.fill(round);                // draw the gray border        g2.setColor(Color.gray);        g2.setStroke(new BasicStroke(5));        g2.draw(round);        g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,            RenderingHints.VALUE_ANTIALIAS_DEFAULT);                // draw the text        String text = this.getComponent().getToolTipText();        if(text != null) {            FontMetrics fm = g2.getFontMetrics();            int h = fm.getAscent();            g2.setColor(Color.black);            g2.drawString(text,10,(this.getHeight()+h)/2);        }            }        public void setToolTipText(String str) {        super.setToolTipText(str);        System.out.println("set tooltip text called");    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -