2010-02-09 53 views
4

BasicArrowButton是一个类,它是Java SE的一部分。 BasicArrowButton按指定方向显示单箭头。我想重写该类,保留现有的方法,但使基本箭头按钮显示双箭头而不是单箭头。例如请参阅以下URL www.tiresias.org/images/ff.jpg。我所要做的就是改变这个图标的绘制方式。在Java中使用基本箭头按钮类

谢谢,

回答

7

子类BasicArrowButton并覆盖paintTriangle。你可以尝试回忆BasicArrowButtonpaintTriangle方法两次得到三角形。例如:

public static class Bidriectional extends BasicArrowButton { 
    private static final long serialVersionUID = 1L; 

    public Bidriectional() { 
    // This does not matter, we'll override it anyways. 
    super(SwingConstants.NORTH); 
    } 

    @Override 
    public void paintTriangle(Graphics g, int x, int y, int size, 
    int direction, boolean isEnabled) { 

    super.paintTriangle(g, x - (size/2), y, size, SwingConstants.EAST, isEnabled); 
    super.paintTriangle(g, x + (size/2), y, size, SwingConstants.EAST, isEnabled); 
    } 
} 

应该给你一个按钮,看起来像这样:

screenshot http://www.amnet.net.au/~kgoh/images/double_arrow.jpg

+0

这是绝对完美的。这正是我需要的。 非常感谢! – Elliott 2010-02-09 13:18:47

1

简单。

子类BasicArrowButton并重写paint()方法,并简单地使用g.drawImage()来绘制您的问题(ff.jpg或任何其他图像)中提到的图像。

请注意,您可能需要将ff.jpg复制到您的项目中并加载它。

注意:为此,您必须创建一个新类并使用它。您不能更改BasicArrowButton的现有行为,因为它不使用UI委托。