如何使JavaFX Chart NumberAxis只显示Integer值,而不是double

时间:2014-05-24 04:16:35

标签: charts javafx numbers axis

我正在尝试创建一个图表,其中yAxis旨在显示员工编号,因此它必须只显示整数。
但是我发现它并不那么容易,因为我已经尝试过 yAxis.setTickUnit(1)但是当值很小时它将无效(等等。最大值为3,它仍会显示0.5,1.5 ......,我只想要像1,2,3,4那样的刻度值。)
我怎么能实现这个目标?

根据@jewelsea的回答,我试过这个(在javafx 2.2 jdk7中)

class IntegerStringConverter extends StringConverter<Number>{

    public IntegerStringConverter() {
    }

    @Override
    public String toString(Number object) {
        if(object.intValue()!=object.doubleValue())
            return "";
        return ""+(object.intValue());
    }

    @Override
    public Number fromString(String string) {
        Number val = Double.parseDouble(string);
        return val.intValue();
    }
}  

结果是可以接受的。双值已经消失了,但仍然存在滴答声 double values gone but ticks are still there

2 个答案:

答案 0 :(得分:2)

在轴上设置tickLabelFormatter

答案 1 :(得分:0)

您可以使用构造函数设置NumberAxis(doublelowerBound,double upperBound,double tickUnit)的值。如果像我这样的人仍在寻找这个,这对于JaxaFX 8来说效果很好。

来源: https://docs.oracle.com/javase/8/javafx/api/javafx/scene/chart/NumberAxis.html