java - ProgressBar doesn't work with a fxml file and a controller -
so used link set progress bar , worked fine when ran code.
however, setup have, can't seem progressbar update... progressbar.getprogress() gets right progress ui isn't updated. here's code far:
main.java
public class main extends application { @override public void start(stage primarystage) { try { fxmlloader loader = new fxmlloader(main.class.getresource("progressbarlayout.fxml")); anchorpane root = (anchorpane) loader.load(); scene scene = new scene(root); primarystage.setscene(scene); primarystage.show(); } catch(exception e) { e.printstacktrace(); } } public static void main(string[] args) { launch(args); } } progressbarcontroller.java
public class progressbarcontroller { private task copyworker; @fxml private progressbar progressbar; @fxml private void onbuttonclick() { progressbar = new progressbar(0); progressbar.setprogress(0); copyworker = createworker(); progressbar.progressproperty().unbind(); progressbar.progressproperty().bind(copyworker.progressproperty()); new thread(copyworker).start(); } public task createworker() { return new task() { @override protected object call() throws exception { (int = 0; < 10; i++) { thread.sleep(2000); updatemessage("2000 milliseconds"); updateprogress(i + 1, 10); system.out.println(progressbar.getprogress()); } return true; } }; } } progressbarlayout.fxml
<?xml version="1.0" encoding="utf-8"?> <?import java.lang.*?> <?import javafx.scene.control.*?> <?import javafx.scene.layout.*?> <?import javafx.scene.layout.anchorpane?> <anchorpane prefheight="257.0" prefwidth="434.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="application.progressbarcontroller"> <children> <progressbar fx:id="progressbar" layoutx="54.0" layouty="103.0" prefheight="51.0" prefwidth="326.0" progress="0.0" /> <button layoutx="201.0" layouty="182.0" mnemonicparsing="false" onaction="#onbuttonclick" text="ok" /> </children> </anchorpane>
in controller :
progressbar = new progressbar(0); this mean create new instance of progressbar , not use progressbar fxml anymore. remove line, should works
Comments
Post a Comment