/**
* create a horizontal axis
*
* @param maxReadLength
* @return axis
*/
public static Pane createAxis(final ReadOnlyIntegerProperty maxReadLength, final ReadOnlyDoubleProperty widthProperty) {
final Pane pane = new Pane();
pane.prefWidthProperty().bind(widthProperty);
final NumberAxis axis = new NumberAxis();
axis.setSide(Side.TOP);
axis.setAutoRanging(false);
axis.setLowerBound(0);
axis.prefHeightProperty().set(20);
axis.prefWidthProperty().bind(widthProperty.subtract(60));
final ChangeListener<Number> changeListener = new ChangeListener<Number>() {
@Override
public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) {
int minX = Math.round(maxReadLength.get() / 2000.0f); // at most 2000 major ticks
for (int x = 10; x < 10000000; x *= 10) {
if (x >= minX && widthProperty.doubleValue() * x >= 50 * maxReadLength.doubleValue()) {
axis.setUpperBound(maxReadLength.get());
axis.setTickUnit(x);
return;
}
}
axis.setTickUnit(maxReadLength.get());
axis.setUpperBound(maxReadLength.get());
}
};
maxReadLength.addListener(changeListener);
widthProperty.addListener(changeListener);
pane.getChildren().add(axis);
return pane;
}
LRInspectorController.java 文件源码
java
阅读 25
收藏 0
点赞 0
评论 0
项目:megan-ce
作者:
评论列表
文章目录