抱歉,我还没有找到更好的标题来描述我的问题:
我想更新一个值为a的JavaFX标签TextField.
在某个星座中,直到我调整窗口大小或在GridPane包含我的标签和我的标签之外单击时,才会显示已更新的值TextField.
完成后,该值将立即更新.
以下FXML中的每个元素似乎都很重要:
<?xml version="1.0" encoding="UTF-8"?>
<?language javascript?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<VBox xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1">
<fx:script> function updateLabel() { label.setText(textfield.getText()); } </fx:script>
<GridPane>
<TextField fx:id="textfield" onKeyReleased="updateLabel()" />
<Label fx:id="label" text="Just type..." GridPane.columnIndex="1" />
<DatePicker GridPane.columnIndex="2" />
</GridPane>
<!-- a ScrollPane containing a TableView containing a TableColumn -->
<ScrollPane><TableView><columns><TableColumn/></columns></TableView></ScrollPane>
</VBox>
Run Code Online (Sandbox Code Playgroud)
DatePicker或放置在外面GridPane,则Label立即刷新.ScrollPane或者TableView,Label立即刷新您可以通过像这样加载FXML文件来尝试这个(但是你需要JDK8 DatePicker):
package sample;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
public class Main extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
Parent root =
FXMLLoader.load(getClass().getClassLoader().getResource("main.fxml"));
primaryStage.setScene(new Scene(root));
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
Run Code Online (Sandbox Code Playgroud)
这是一个已知的错误?或者我是否遗漏了有关缓存策略或类似JavaFX中的内容?
/opt/java8/bin % ./java -version
java version "1.8.0_11"
Java(TM) SE Runtime Environment (build 1.8.0_11-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.11-b03, mixed mode)
/opt/java8/bin % uname -a
Linux venus 3.15.7-1-ARCH #1 SMP PREEMPT Mon Jul 28 20:06:17 CEST 2014 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
686 次 |
| 最近记录: |