Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to make JavaFX Chart NumberAxis only show Integer value,not double

I'm trying to create a chart who's yAxis is designed to show number of employee number, so it must only show whole numbers.
But I found it's not that easy as I already tried to yAxis.setTickUnit(1) but it won't work when the values are small(etc. the max value is 3, it'll still show 0.5,1.5..., I only want tick value like 1,2,3,4..)
How Could I to achieve this?

According to @jewelsea 's answer, I tried this(In 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();
    }
}  

It's result is kind of acceptable. Double value's are gone, but there ticks are still there.
double values gone but ticks are still there

like image 694
Li You Avatar asked Oct 31 '22 23:10

Li You


1 Answers

Set a tickLabelFormatter on the axis.

like image 130
jewelsea Avatar answered Nov 16 '22 18:11

jewelsea