java - 创建一个抑制 CustomTooltip 的自定义 JButton

标签 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;
            }
        };
    }
};

最佳答案

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

类似于:

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;
    }
};

关于java - 创建一个抑制 CustomTooltip 的自定义 JButton,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20458853/

相关文章:

java - 了解 drawLine 的工作原理

java - 如何在其他计算机上运行java可执行文件

java - 将静态类引用传递给非静态类的构造函数

java - 如何在 HQL 中使用内连接进行更新

java - 在 Vaadin 中从表创建图表

java - 存储运行时之间的映射

java - 按下按钮时读取一行

java - 在运行时在 netbeans 中创建组件

java - 拥有无边框的 JToggleButton?

java - 调用重绘后 JButton 显示在错误的位置