我想要做的是,当我创建一个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;
}
};
}
};
答案 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;
}
};