创建一个禁止自定义工具提示的自定义JButton

时间:2013-12-08 20:46:04

标签: java swing jbutton imageicon jtooltip

我想要做的是,当我创建一个CButton实例时,它会返回一个JButton实例,它有一个自定义的工具提示和一个图像层。

我的应用程序运行完美,没有任何错误,自定义按钮工具提示核心工作,但按钮上不存在图像层(我的问题是为什么?),因为图像对象参数被发送到JButton。

import java.awt.Color;
import java.awt.Font;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JToolTip;

public class CButton extends JButton
{
    CButton(String text, String source)
    {
        ImageIcon iconButton = new ImageIcon(source);
        new JButton(text, iconButton)
        {
            public JToolTip createToolTip()
            {
                JToolTip toolTip = super.createToolTip();
                toolTip.setForeground(Color.BLACK);
                toolTip.setBackground(Color.WHITE);
                toolTip.setFont(new Font("Arial", Font.PLAIN, 12));
                return toolTip;
            }
        };
    }
};

1 个答案:

答案 0 :(得分:3)

要自定义组件的行为,您应该覆盖meethods,而不是创建要扩展的类的新实例。

类似的东西:

public class CButton extends JButton
{
    public CButton(String text, Icon icon)
    {
        super(text, icon);
    }

    @Override
    public JToolTip createToolTip()
    {
        JToolTip toolTip = super.createToolTip();
        toolTip.setForeground(Color.BLACK);
        toolTip.setBackground(Color.WHITE);
        toolTip.setFont(new Font("Arial", Font.PLAIN, 12));
        return toolTip;
    }
};