Hallo zusammen,
ich habe ein etwas merkwürdiges Problem und vermute mal das ich irgendetwas übersehe .. komme aber einfach nicht auf die Lösung. Hier mein Problem:
Ich starte aus meinem Main GUI ein weiteres Fenster. Hier gibt es einen mehrere Infos und einen Start Button der Zeilen in eine Test Datenbank Tabelle kopiert. Dieses wird innerhalb eines Service Task realisiert um das GUI nicht zu blockieren. Nachdem alle Zeilen erfolgreich in die Tabelle kopiert worden sind frage ich Bytes und Blocks der Tabelle ab und möchte diese Werte gerne in zwei Label des GUI Fenster speichern. Hört sich ja recht simpel an - habe ich mir auch gedacht, aber wieder mal verzweifel ich daran. Ich kann die Label außerhalb des service Task, z.B. in der Initialize() Methode mit belieben Werten setzen, innerhalb des service Task geht das, warum auch immer nicht?? Wenn ich aus dem Label ein Text Node mache funktiiniert das auch innerhalb des Service Task.
Hier mal die zuständigen Code Schnipsel:
Hier der relevante Teil aus dem service Task:
Wenn ich die FXML Nodes von Label auf Text ändere funktiiniert es. Bei Label wird keine Exception geworfen, es wird aber auch kein Text gesetzt?
Hat jemand eine Erklörung für das Verhalten?
Was mache ich hier falsch?
Gruß
Ralf
ich habe ein etwas merkwürdiges Problem und vermute mal das ich irgendetwas übersehe .. komme aber einfach nicht auf die Lösung. Hier mein Problem:
Ich starte aus meinem Main GUI ein weiteres Fenster. Hier gibt es einen mehrere Infos und einen Start Button der Zeilen in eine Test Datenbank Tabelle kopiert. Dieses wird innerhalb eines Service Task realisiert um das GUI nicht zu blockieren. Nachdem alle Zeilen erfolgreich in die Tabelle kopiert worden sind frage ich Bytes und Blocks der Tabelle ab und möchte diese Werte gerne in zwei Label des GUI Fenster speichern. Hört sich ja recht simpel an - habe ich mir auch gedacht, aber wieder mal verzweifel ich daran. Ich kann die Label außerhalb des service Task, z.B. in der Initialize() Methode mit belieben Werten setzen, innerhalb des service Task geht das, warum auch immer nicht?? Wenn ich aus dem Label ein Text Node mache funktiiniert das auch innerhalb des Service Task.
Hier mal die zuständigen Code Schnipsel:
Java:
@FXML
Label actualBytes;
@FXML
Label actualBlocks;
Hier der relevante Teil aus dem service Task:
Java:
@SuppressWarnings("rawtypes")
Service insertUSFLIGHTS1990_2009Task = new Service() {
String dbUserPassword;
String time2Insert;
String countRowsUSFLIGHTS;
boolean userDeclinedReCreateTable = false;
@Override
protected Task createTask() {
return new Task() {
@Override
protected Void call() throws Exception {
...
...
updateMessage("Task 4: Get actual Bytes & Blocks from table " + tableName + ". Please wait ...");
LOGGER.info("Task 4: Get actual Bytes & Blocks from table " + tableName + ". Please wait ...");
String queryGetBytesBlocksUSFLIGHTS = "select bytes,blocks from user_segments where segment_name = '" + tableName + "'";
Statement stmtGetBytesBlocksUSFLIGHTS = conn.createStatement();
try {
//updateProgress(-1.0, 1.0);
ResultSet rsetGetBytesBlocksUSFLIGHTS = stmtGetBytesBlocksUSFLIGHTS.executeQuery(queryGetBytesBlocksUSFLIGHTS);
while (rsetGetBytesBlocksUSFLIGHTS.next()) {
actualBytes.setText(rsetGetBytesBlocksUSFLIGHTS.getString("BYTES"));
actualBlocks.setText(rsetGetBytesBlocksUSFLIGHTS.getString("BLOCKS"));
...
Wenn ich die FXML Nodes von Label auf Text ändere funktiiniert es. Bei Label wird keine Exception geworfen, es wird aber auch kein Text gesetzt?
Hat jemand eine Erklörung für das Verhalten?
Was mache ich hier falsch?
Gruß
Ralf