Я пытаюсь создать установщик/Updater для проекта, над которым работает. Моя единственная проблема, с которой я сталкиваюсь, заключается в том, что моя переменная моей панели progess не хочет отображаться на ярлыке: C. Я уже посмотрел и нашел ответ от Себастьяна, который сказал, что myLabel.textProperty().bind(valueProperty);
должен работать, но ... ну, вы догадались результат. Eclipse говорит, что мне нужно изменить тип моего int: ObservableValue<? extends String>
, и когда я его изменил, он говорит, что мне нужно изменить его на int. Я не знаю, что я должен делать теперь: //Ярлык JavaFX установлен на переменные проблемы
EDIT: Полный код моего контроллера класса
package application;
import java.io.BufferedOutputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URL;
import javafx.beans.property.DoubleProperty;
import javafx.beans.property.SimpleDoubleProperty;
import javafx.beans.value.ObservableValue;
import javafx.fxml.FXML;
import javafx.scene.control.Label;
import javafx.scene.control.ProgressBar;
public class Controller {
@FXML
ProgressBar pb;
Label progText;
public void install(){
new Thread(new Runnable() {
@Override public void run() {
download();
}}).start();
};
public void load(){
new Thread(new Runnable() {
@Override public void run() {
download();
Unzip.extract();
System.out.println("Finished");
}}).start();
};
public void download(){
try {
System.out.println("Start");
URL url = new URL("https://www.dropbox.com/s/27d4us64oqifuph/modpack.zip?dl=1");
HttpURLConnection httpConnection = (HttpURLConnection) (url.openConnection());
long completeFileSize = httpConnection.getContentLength();
java.io.BufferedInputStream in = new java.io.BufferedInputStream(httpConnection.getInputStream());
java.io.FileOutputStream fos = new java.io.FileOutputStream(
"modpack.zip");
java.io.BufferedOutputStream bout = new BufferedOutputStream(
fos, 1024);
byte[] data = new byte[1024];
long downloadedFileSize = 0;
int x = 0;
while ((x = in.read(data, 0, 1024)) >= 0) {
downloadedFileSize += x;
//calculate progress
int cp = (int) ((((double)downloadedFileSize)/((double)completeFileSize)) * 10000);
DoubleProperty progress = new SimpleDoubleProperty(0);
// update progress bar
pb.setProgress(cp*0.0001);
progress.setValue(cp*0.0001);
progText.textProperty().bind(progress.asString());
bout.write(data, 0, x);
}
bout.close();
in.close();
} catch (FileNotFoundException e) {
} catch (IOException e) {
}
};
}
Почему это cp final? – Spooky
А где же вы на этикетке? – hotzst
@hotzst Я редактировал свой пост. –