1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| package datepickerskin;
import com.sun.javafx.scene.control.skin.DatePickerSkin;
import javafx.scene.control.Button;
import javafx.scene.control.DatePicker;
import javafx.scene.layout.Region;
public class EPSDatePickerSkin extends DatePickerSkin {
final Button leftArrowButton = new Button();
final Button rightArrowButton = new Button();
public EPSDatePickerSkin(DatePicker dp) {
super(dp);
//
final Region leftArrow = new Region();
leftArrow.setId("arrow");
leftArrow.getStyleClass().add("arrow");
leftArrowButton.setId("left-arrow-button");
leftArrowButton.getStyleClass().add("left-arrow-button");
leftArrowButton.setGraphic(leftArrow);
//
final Region rightArrow = new Region();
rightArrow.setId("arrow");
rightArrow.getStyleClass().add("arrow");
rightArrowButton.setId("right-arrow-button");
rightArrowButton.getStyleClass().add("right-arrow-button");
rightArrowButton.setGraphic(rightArrow);
getChildren().add(0, leftArrowButton);
getChildren().add(rightArrowButton);
}
@Override
protected void layoutChildren(double x, double y, double w, double h) {
final double prefLW = snapSize(leftArrowButton.prefWidth(-1));
final double prefRW = snapSize(rightArrowButton.prefWidth(-1));
leftArrowButton.resizeRelocate(x, y, prefLW, h);
rightArrowButton.resizeRelocate(x + w - prefRW, y, prefRW, h);
final double pickerX = x + prefLW;
final double pickerY = y;
final double pickerW = Math.max(0, w - (prefLW + prefRW));
final double pickerH = h;
super.layoutChildren(pickerX, pickerY, pickerW, pickerH);
}
} |
Partager