JavaFX DatePicker设置日期值的对齐方式 - java

当我使用JavaFX的Datepicker并使用节点的整个宽度时,日期选择器的文本不会居中。

我尝试使用setStyle("-fx-alignment: center;"),但这不起作用。

JavaFX DatePicker设置日期值的对齐方式 - java

我想要这样的东西(用油漆做):

JavaFX DatePicker设置日期值的对齐方式 - java

如何将文字居中?这是示例代码:

import java.time.LocalDate;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.DatePicker;
import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;

public class JavaFxExample extends Application {

    private BorderPane borderPane;

    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage stage) {
        borderPane = new BorderPane();
        stage.setScene(new Scene(borderPane, 600, 400));
        stage.show();
        running();
    }

    private void running() {
        DatePicker datepicker = new DatePicker();
        datepicker.setValue(LocalDate.now());
        datepicker.setStyle("-fx-alignment: center;"); // this does not work :(
        datepicker.setPrefWidth(Double.MAX_VALUE);
        borderPane.setCenter(datepicker);
    }

}

参考方案

只需添加以下CSS(在样式表文件中):

.date-picker > .text-field  {
    -fx-alignment: center;
}

JavaFX DatePicker设置日期值的对齐方式 - java

Java FX 2 CSS伪类 - java

如何在Java FX 2中创建自己的CSS伪类?这样在CSS文件中我可以使用这种样式.MyButton : online{ } 在FX 1中,可以使用诸如 public long impl_getPseudoClassState() {} 但现在不推荐使用它们:-(有没有新的方法? 参考方案 目前您无法做到。这是JavaFX CSS Reference Gu…

JavaFX FXML无效类型 - java

我正在Linux中用Eclipse编写JavaFX应用程序,并使用SceneBuilder编写了某些FXML代码。当我移至Windows时,如果我尝试执行代码,它将运行良好,但是,如果我尝试修改fxml文件,它将开始给我一个错误(与修改无关)。我也尝试使用NetBeans,但没有任何改变。错误是:javafx.fxml.LoadException: Ligh…

JavaFX WebView URL.createObjectURL未定义 - java

我正在使用JavaFX 8嵌入式WebView。我想从Blob图片构建Blob URL。但是,URL.createObjectURL给了我未定义的信息。在JavaFX 8 WebView环境中,是否有任何方法(匀场等)从Blob对象创建Blob URL? 参考方案 看来目前尚不支持它,但是Java 9将于9月发布。https://bugs.openjdk.j…

JavaFX FXMLLoader:从jar文件加载时未设置位置 - java

我有一个问题,当我将项目导出到jar文件时,会出现错误:java.lang.IllegalStateException: Location is not set. 这是由于我试图做出如下所示的视图而引起的:public View(Stage stage) throws IOException { loader = new FXMLLoader(getClas…

JavaFX:节点下的节点事件处理 - java

我正在一个项目中,在StackPane中有一个GUI(BorderPane)和一个mobileMap(Pane),但是当我想单击地图或他的一个孩子时,事件处理程序仅在GUI上处理。我该如何解决这个问题?我将所有对象放在“地图”窗格中,然后将此窗格移动到另一个窗格中。这是一些代码:Pane Map = new Pane(); Map.getChildren()…