Hi!
Sry, dass ich hier (wieder) mit ner Noob-Frage um die Ecke komme, zumal es auch diverse Postings zu diesem Thema gibt...
Aber ich kriegs einfach nicht wirklich hin, dass sich mein JProgressbar zur Laufzeit aktualisiert..
Obwohl ich schon einiges ausprobiert habe, aber dafür bin ich offen bar zu blöd... :rtfm:
Kurz zum Ablauf meines Progs:
Ich habe (unter Anderem) eine GUI-Klasse, die beinhaltet einige Button, auf denen ein ActionListener liegt..
Wichtig ist hierbei eigentlich auch nur Zeile 7! In der Klasse vkr wird die read-Mathode angestossen, die mir eben das Array der Values zurückgibt.
Die entsprechende Methode sieht so aus..
In der 2. Klasse wird im Endeffekt ein bestimter Ordner nach Excel-Files durchsucht.
Sind die entsprechenden Files gefunden, werden diese mittels der while-Schleife ausgelesen und weiter verarbeitet.. Ich habe den Stück vom Code mal weggelassen.. ;-)
Über die private - Variable round_counter möchte ich jetzt meinen ProgressBar setzen.
Das tut er auch, nur leider erst, wenn die while-Schleife komplett abgearbeitet ist, so weit so gut..
Aber meine ganzen Versuche mit SwingUtilities-invokelater() und Threading funzten nicht..
Von daher würde ich mich über nen kleine Hilfestellung Eurerseits sehr freuen, damitich weiß, wie ich den ProgressBar da reinfrickeln kan..
Sry, dass ich hier (wieder) mit ner Noob-Frage um die Ecke komme, zumal es auch diverse Postings zu diesem Thema gibt...
Aber ich kriegs einfach nicht wirklich hin, dass sich mein JProgressbar zur Laufzeit aktualisiert..
Obwohl ich schon einiges ausprobiert habe, aber dafür bin ich offen bar zu blöd... :rtfm:
Kurz zum Ablauf meines Progs:
Ich habe (unter Anderem) eine GUI-Klasse, die beinhaltet einige Button, auf denen ein ActionListener liegt..
Java:
ActionListener first_listener = new ActionListener() {
public void actionPerformed(ActionEvent e) {
Stored_Values[] sv = vkr.read(path, date_choosed, "", converted);
local_today = local_today.replace("-", "_");
if (local_today.equals(date_choosed) == false) {
paint_graphs(dt);
}
else {
paint_graphs_tdy(dt);
}
}
};
Wichtig ist hierbei eigentlich auch nur Zeile 7! In der Klasse vkr wird die read-Mathode angestossen, die mir eben das Array der Values zurückgibt.
Die entsprechende Methode sieht so aus..
Java:
public Stored_Values[] read_(String pfad, String date, String date_2, String conv_in) {
jfr = new JFrame("Status-Info");
jfr.setLayout(new GridLayout(2,0));
jfr.setSize(450,60);
jpb= new JProgressBar(0, (progress_end*2));
jpb.setValue(0);
jpb.setStringPainted(true);
JLabel info1 = new JLabel("Wait plz");
jfr.add(info1);
jfr.add(jpb);
jfr.repaint();
jfr.pack();
jfr.validate();
jfr.setVisible(true);
boolean firstrun = false;
Stored_Values[] all_days = new Stored_Values[1];
String localdate_start = date;
localdate_start = localdate_start.replace("_", "-");
double[] t1 = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
double[] t2 = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
double[] t3 = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
double[] t4 = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
double[] t5 = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
double[] t6 = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
double[] t7 = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
double[] t8 = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
double[] t9 = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
double[] t10 = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
File ImportFolder = new File(pfad);
File[] data_list;
ArrayList<File> found_files_for_date = new ArrayList<File>();
data_list = ImportFolder.listFiles();
for (int list_int = 0; list_int < data_list.length; list_int++) {
String file_name = data_list[list_int].getName();
if (file_name.contains(localdate_start) && file_name.startsWith(".~") == false && file_name.startsWith("~") == false) {
found_files_for_date.add(data_list[list_int]);
}
}
progress_end = found_files_for_date.size();
Iterator file_iterator = found_files_for_date.iterator();
Iterator file_iterator_provider = found_files_for_date.iterator();
while (file_iterator.hasNext()) {
round_counter++;
File this_one = (File) file_iterator.next();
XSSFWorkbook wb_this = null;
try {
wb_this = new XSSFWorkbook(this_one.getAbsolutePath());
}
catch(IOException e) {
e.printStackTrace();
}
Sheet sheet_day_data = wb_this.getSheetAt(0);
Vector dat_vec = new Vector();
String dest_month_nextline[];
dtv.set_tt_1(t1[0], t1[1], t1[2], t1[3], t1[4], t1[5], t1[6], t1[7], t1[8], t1[9], t1[10], t1[11], t1[12], t1[13], t1[14], t1[15], t1[16], t1[17], t1[18], t1[19], t1[20], t1[21], t1[22], t1[23]);
dtv.set_tt_2(t2[0], t2[1], t2[2], t2[3], t2[4], t2[5], t2[6], t2[7], t2[8], t2[9], t2[10], t2[11], t2[12], t2[13], t2[14], t2[15], t2[16], t2[17], t2[18], t2[19], t2[20], t2[21], t2[22], t2[23]);
dtv.set_tt_3(t3[0], t3[1], t3[2], t3[3], t3[4], t3[5], t3[6], t3[7], t3[8], t3[9], t3[10], t3[11], t3[12], t3[13], t3[14], t3[15], t3[16], t3[17], t3[18], t3[19], t3[20], t3[21], t3[22], t3[23]);
dtv.set_tt_4(t4[0], t4[1], t4[2], t4[3], t4[4], t4[5], t4[6], t4[7], t4[8], t4[9], t4[10], t4[11], t4[12], t4[13], t4[14], t4[15], t4[16], t4[17], t4[18], t4[19], t4[20], t4[21], t4[22], t4[23]);
dtv.set_tt_5(t5[0], t5[1], t5[2], t5[3], t5[4], t5[5], t5[6], t5[7], t5[8], t5[9], t5[10], t5[11], t5[12], t5[13], t5[14], t5[15], t5[16], t5[17], t5[18], t5[19], t5[20], t5[21], t5[22], t5[23]);
dtv.set_tt_6(t6[0], t6[1], t6[2], t6[3], t6[4], t6[5], t6[6], t6[7], t6[8], t6[9], t6[10], t6[11], t6[12], t6[13], t6[14], t6[15], t6[16], t6[17], t6[18], t6[19], t6[20], t6[21], t6[22], t6[23]);
dtv.set_tt_7(t7[0], t7[1], t7[2], t7[3], t7[4], t7[5], t7[6], t7[7], t7[8], t7[9], t7[10], t7[11], t7[12], t7[13], t7[14], t7[15], t7[16], t7[17], t7[18], t7[19], t7[20], t7[21], t7[22], t7[23]);
dtv.set_tt_8(t8[0], t8[1], t8[2], t8[3], t8[4], t8[5], t8[6], t8[7], t8[8], t8[9], t8[10], t8[11], t8[12], t8[13], t8[14], t8[15], t8[16], t8[17], t8[18], t8[19], t8[20], t8[21], t8[22], t8[23]);
dtv.set_tt_9(t9[0], t9[1], t9[2], t9[3], t9[4], t9[5], t9[6], t9[7], t9[8], t9[9], t9[10], t9[11], t9[12], t9[13], t9[14], t9[15], t9[16], t9[17], t9[18], t9[19], t9[20], t9[21], t9[22], t9[23]);
dtv.set_tt_10(t10[0], t10[1], t10[2], t10[3], t10[4], t10[5], t10[6], t10[7], t10[8], t10[9], t10[10], t10[11], t10[12], t10[13], t10[14], t10[15], t10[16], t10[17], t10[18], t10[19], t10[20], t10[21], t10[22], t10[23]);
all_days[0] = dtv;
return all_days;
}
In der 2. Klasse wird im Endeffekt ein bestimter Ordner nach Excel-Files durchsucht.
Sind die entsprechenden Files gefunden, werden diese mittels der while-Schleife ausgelesen und weiter verarbeitet.. Ich habe den Stück vom Code mal weggelassen.. ;-)
Über die private - Variable round_counter möchte ich jetzt meinen ProgressBar setzen.
Das tut er auch, nur leider erst, wenn die while-Schleife komplett abgearbeitet ist, so weit so gut..
Aber meine ganzen Versuche mit SwingUtilities-invokelater() und Threading funzten nicht..
Von daher würde ich mich über nen kleine Hilfestellung Eurerseits sehr freuen, damitich weiß, wie ich den ProgressBar da reinfrickeln kan..