thunderbirdnils
Mitglied
moin moin
hab mal wieder ein problem
ich habe eine funktion geschrieben die eine html seite runterläd gesetzt den fall das ein sicherheitcode abgefragt wird soll diese funktion anhalten und erst weiter machen wenn der code vom benutzer eingegeben wurde
das sieht dann wie folgt aus:
das problem is ja jetzt das die funktion im hauptthread ausgefürt wird und ich sie somit nicht mit sleep oder wait anhalten
ich weiss das ich das in einer extra klasse ausführen kann und da warten kann aber wenn ich das htmlholen in einem parallen thread starte dann bekomm ich ja nicht die internetseite in meine variable da das html holen manchmal etwas dauert
wie kann ich also die funktion anhalten?
hab mal wieder ein problem
ich habe eine funktion geschrieben die eine html seite runterläd gesetzt den fall das ein sicherheitcode abgefragt wird soll diese funktion anhalten und erst weiter machen wenn der code vom benutzer eingegeben wurde
das sieht dann wie folgt aus:
Code:
public class Test extends JFrame implements ActionListener {
public Test() {
String internetseite = Fhtmlholen(link);
}
static String Fhtmlholen(String link, boolean codeschneiden) {
String text = "";
char[] htmltext;
boolean htmlcode = false;
int i1 = 0;
do {
try {
URLConnection con = new URL(link).openConnection();
BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream()));
text = "";
while (br.ready()) {
text = text + "\n" + br.readLine();
}
br.close();
}
catch (Exception e) {
}
} while(!text.contains("<html>") && !text.contains("<//html>"));
if(text.contains("Sicherheitsabfrage")) {
weiter = false;
Klassesicherheitfenster codeeingeben = new Klassesicherheitfenster();
codeeingeben.start();
do {
//nur müll un die zeit zu vertreiben wie kann ich hier warten?
// long zeit1 = 0;
// long zeit2 = 0;
// Date dt = new Date();
// zeit1 = dt.getTime();
// dt = new Date();
// zeit2 = dt.getTime();
// while((zeit2 - zeit1) < 1000) {
// dt = new Date();
// zeit2 = dt.getTime();
// }
} while(!weiter);
content = "q=" + q;
content = content + "&a=" + a;
content = content + "&b=" + b;
content = content + "&cbild=" + cbild;
Fcontentsenden(sicherheitseite, start, content);
text = Fhtmlholen(link, codeschneiden);
if(codeschneiden) { ... }
...
}
public static void main(String[] args){
JFrame rahmen = new test();
WindowListener listener = new WindowAdapter() {
public void windowClosing( WindowEvent we) {
System.exit(0);
}
};
rahmen.addWindowListener(listener);
rahmen.setSize(fensterbreit, fensterhoch);
rahmen.setVisible(true);
rahmen.setResizable(false);
rahmen.setEnabled(true);
}
}
das problem is ja jetzt das die funktion im hauptthread ausgefürt wird und ich sie somit nicht mit sleep oder wait anhalten
ich weiss das ich das in einer extra klasse ausführen kann und da warten kann aber wenn ich das htmlholen in einem parallen thread starte dann bekomm ich ja nicht die internetseite in meine variable da das html holen manchmal etwas dauert
wie kann ich also die funktion anhalten?