如何使用JavaFX CSS创建类似Android TextField的JavaFX TextField?
例如 : 
我已经尝试了很多FX css,但没有达到这样的效果.这里http://jsfiddle.net/QKm37/ CSS存在HTML输入类型,但它不适用于JavaFX SceneBuilder.
例如 : /** Not Exist in JavaFX **/
-fx-border: none;
-fx-background: bottom left linear-gradient(#a9a9a9, #a9a9a9) no-repeat, bottom center linear-gradient(#a9a9a9, #a9a9a9) repeat-x, bottom right linear-gradient(#a9a9a9, #a9a9a9) no-repeat;
我在OSX上使用JRE 8_40用于JavaFX应用程序,该应用程序使用WebView显示使用AngularJS和Bootstrap编写的HTML表单.我找到了使用AngularJS"ng-disabled"的表单提交按钮,并且当处于禁用状态时隐藏了class ="btn btn-success btn-lg".当按钮进入启用状态时,按钮显示正确.
我已将问题缩小到Bootstrap .btn.disabled类的不透明度CSS设置.
如果按照引导程序css在按钮上有以下样式,则不显示该按钮
<input type="button" value="TEST" style="opacity: .65">
Run Code Online (Sandbox Code Playgroud)
不透明度样式在Windows上的相同版本的JRE上正常工作.
OSX上的JavaFX应用程序是否需要显示设置?
我目前正在开发一个带有斯洛伐克语本地化的JavaFX应用程序,在应用程序内部,我正在使用一个Alert对话框来显示可扩展内容窗格的异常,如下图所示:

我想有这样的对话翻译完成其与进展顺利Header,Title或Content但我不能找到一种方法如何在翻译Show/Hide details的扩张区的标签.
所以我的问题可以有点概括:如何更改/翻译JavaFX内部元素的文本?
在此先感谢您的帮助.
PS:为了为异常创建此Alert对话框,我使用的代码在code.makery.ch上找到
我有一个关于多线程和StringProperty绑定的问题.
我有一个类CacheManager,其中包含一个Thread更新我的缓存与服务器上的更改.现在,我想通知文本和进度的百分比(这是一个Label和ProgressBar在JavaFX中).我使用public static DoubleProperty,StringProperty为此,在CacheManager类中定义.我只是像这样绑定它:
progressBar.progressProperty().bind(CacheManager.progress);
someLabel.textProperty().bind(CacheManager.status);
Run Code Online (Sandbox Code Playgroud)
现在,在Updater线程中,我更新了这些Properties.有了DoubleProperty这个工作得很好,并且ProgressBar正显示出完美的进展.但是,更新Label状态(来自的文本StringProperty)会引发错误:java.lang.IllegalStateException: Not on FX application thread; currentThread = Thread-9
现在,我的问题是:为什么DoubleProperty工作正常,而StringProperty抛出错误?他们考虑多线程有什么区别?
任何关于重新设计的想法也欢迎,非常感谢任何帮助!
我一直在与这个战斗超过一天,并在SO和其他地方阅读了很多帖子,但我仍然遇到问题.
我需要在自包含的JavaFX应用程序包中包含我的应用程序图标.我正在使用JDK 1.8.0_45及其包含的JavaFX包.我正在使用Maven来构建.exe并且一切都很好,除了我不能得到我的图标.
这是我的pom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<prerequisites>
<maven>2.2.1</maven>
</prerequisites>
<groupId>com.mycompany.drm</groupId>
<artifactId>DRMDashboard</artifactId>
<version>2.0</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<javafx.version>8.0.45</javafx.version>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<!-- copy all dependencies of your app to target folder-->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.10</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<configuration>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>false</overWriteSnapshots>
<overWriteIfNewer>true</overWriteIfNewer>
</configuration>
<goals>
<goal>copy-dependencies</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.6</version>
<configuration>
<archive>
<manifestEntries>
<JavaFX-Version>${javafx.version}+</JavaFX-Version>
<Main-Class>com.mycompany.client.HelloWorld</Main-Class>
<implementation-version>2.0</implementation-version>
<JavaFX-Application-Class>com.mycompany.client.HelloWorld</JavaFX-Application-Class>
<JavaFX-Class-Path>
<!-- list all your dependencies …Run Code Online (Sandbox Code Playgroud) 我正在使用TableView(FXML),我希望在最后一列中包含所有行以及删除按钮.
这是一个显示我的意思的视频:TableView中的YouTube删除按钮
这是我在主控制器类中的内容:
public Button del() {
Button del = new Button();
del.setText("X");
del.setPrefWidth(30);
del.setOnAction(new EventHandler<ActionEvent>() {
public void handle(ActionEvent event) {
int i = index.get();
if(i > -1) {
goals.remove(i);
list.getSelectionModel().clearSelection();
}
}
});
return del;
}
private SimpleIntegerProperty index = new SimpleIntegerProperty();
@Override
public void initialize(URL location, ResourceBundle resources){
//DateFormat df = new SimpleDateFormat("dd MMM yyyy");
sdate.setValue(LocalDate.now());
edate.setValue(LocalDate.now());
seq.setCellValueFactory(new PropertyValueFactory<Goals, Integer>("id"));
gol.setCellValueFactory(new PropertyValueFactory<Goals, String>("goal"));
sdt.setCellValueFactory(new PropertyValueFactory<Goals, Date>("sdte"));
edt.setCellValueFactory(new PropertyValueFactory<Goals, Date>("edte"));
prog.setCellValueFactory(new PropertyValueFactory<Goals, Integer>("pb"));
del.setCellValueFactory(new PropertyValueFactory<Goals, Button>("x"));
list.setItems(goals); …Run Code Online (Sandbox Code Playgroud) 我正在设计一个 JavaFX 程序,使用 zenjava 基本原型。一切都可以正常查找,除非我想使用 ImageView 小部件添加图像。
我在 src/main/resources 下创建了一个名为 images 的新文件夹,其中存储要在 ImageView 上显示的图像。
所以,根据这个图像存储在/src/main/resources/images/image.jpg
问题是,我打开 SceneBuilder 并从文件夹 C:\Users\Toni\workspace\MyProject\src\main\resources\images\image.jpg 中拖放图像,我可以在屏幕上看到图像。我保存 fxml 文件,然后打开它,fxml 文件引用图像,如下所示:
<ImageView fitHeight="200.0" fitWidth="200.0" layoutX="1463.0" layoutY="551.0">
<image>
<Image url="@../images/image.jpg" />
</image>
</ImageView>
Run Code Online (Sandbox Code Playgroud)
但是,当我编译并运行它时,出现以下错误:
[INFO] --- javafx-maven-plugin:8.1.2:run (default-cli) @ QAdmin ---
[INFO] Running JavaFX Application
null/../images/wait_time_icon.png
Exception in Application start method
[WARNING]
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:297)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.RuntimeException: Exception in Application start method
at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:917)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$156(LauncherImpl.java:182)
... …Run Code Online (Sandbox Code Playgroud) TableView多选项将所选对象之一返回为null.这种情况不会每次都发生,但是当我尝试在表中选择两行时,大多数情况都会发生这种情况.类似于这个问题中定义的问题
重现问题的最佳方法是尝试选择两个连续的行.FXML:
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.ProgressBar?>
<?import javafx.scene.control.TableColumn?>
<?import javafx.scene.control.TableView?>
<?import javafx.scene.control.TextField?>
<?import javafx.scene.control.cell.PropertyValueFactory?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.layout.Region?>
<?import javafx.scene.layout.StackPane?>
<AnchorPane xmlns="http://javafx.com/javafx/8.0.65" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.test.controller.TestController">
<children>
<TableView fx:id="personsTable" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="35.0">
<placeholder>
<Label text="" />
</placeholder>
<columns>
<TableColumn text="Name">
<cellValueFactory>
<PropertyValueFactory property="name" />
</cellValueFactory>
</TableColumn>
<TableColumn text="Address">
<cellValueFactory>
<PropertyValueFactory property="address" />
</cellValueFactory>
</TableColumn>
<TableColumn text="Course">
<cellValueFactory>
<PropertyValueFactory property="course" />
</cellValueFactory>
</TableColumn>
<TableColumn text="Country">
<cellValueFactory>
<PropertyValueFactory property="country" />
</cellValueFactory>
</TableColumn>
</columns>
</TableView>
</children>
</AnchorPane>
Run Code Online (Sandbox Code Playgroud)
控制器:
import java.net.URL; …Run Code Online (Sandbox Code Playgroud) 我有一个SimpleIntegerProperty并想从中派生出一个SimpleObjectProperty<Color>。
为此,我想象了一些机制,比如流和可选:
SimpleIntegerProperty intProp;
ObjectProperty<Color> colorProp = intProp.map(i -> convertIntToColor(i), c -> convertColorToInt(c));
Run Code Online (Sandbox Code Playgroud)
是否已经内置了一些东西,还是我真的需要自己推出它?
如果没有这样的东西,这似乎很奇怪,因为查看 的所有Bindings功能会让您强烈地感觉到该功能也应该存在。
谢谢!
我正在使用具有如下样式类的 CSS 样式表:
.sublabel {
-fx-font-style: italic;
-fx-font-size: 12;
}
Run Code Online (Sandbox Code Playgroud)
...已在 Scene Builder 中设置为标签的样式类。字体大小按预期更改(较小,因为我有 -fx-font-size: 14; 在 .root 类下,但这是唯一与字体相关的设置)。粗体样式很好用,但它拒绝使用斜体字体。我没有在任何地方使用自定义字体,所以这应该使用 JavaFX 8 在 Win7 上使用的默认字体。我也试过在 Style 下独立设置它。
什么可能导致样式请求被忽略?
javafx-8 ×10
javafx ×7
java ×5
fxml ×3
css ×2
localization ×1
maven ×1
multi-select ×1
tableview ×1