BasicArrowButton是一个类,它是Java SE的一部分。 BasicArrowButton按指定方向显示单箭头。我想重写该类,保留现有的方法,但使基本箭头按钮显示双箭头而不是单箭头。例如请参阅以下URL www.tiresias.org/images/ff.jpg。我所要做的就是改变这个图标的绘制方式。在Java中使用基本箭头按钮类
谢谢,
BasicArrowButton是一个类,它是Java SE的一部分。 BasicArrowButton按指定方向显示单箭头。我想重写该类,保留现有的方法,但使基本箭头按钮显示双箭头而不是单箭头。例如请参阅以下URL www.tiresias.org/images/ff.jpg。我所要做的就是改变这个图标的绘制方式。在Java中使用基本箭头按钮类
谢谢,
子类BasicArrowButton并覆盖paintTriangle。你可以尝试回忆BasicArrowButton的paintTriangle方法两次得到三角形。例如:
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
简单。
子类BasicArrowButton并重写paint()方法,并简单地使用g.drawImage()来绘制您的问题(ff.jpg或任何其他图像)中提到的图像。
请注意,您可能需要将ff.jpg复制到您的项目中并加载它。
注意:为此,您必须创建一个新类并使用它。您不能更改BasicArrowButton的现有行为,因为它不使用UI委托。
这是绝对完美的。这正是我需要的。 非常感谢! – Elliott 2010-02-09 13:18:47