Hallo,
ich bin gerade dabei ein Programm mit Java zu programmieren, welches ein anderes mit Robot fernsteuert. Dort soll das Java Programm unter anderem automatisch Textfelder erstellen und diese dann nach bestimmten Vorgaben formatieren.
Nun bin ich auf das Problem gestoßen, dass sich nicht an die Reihenfolge der Programmcodes gehalten wird. Ich erstelle mit einer Methode ein beschriebenes Textfeld, dieses soll dann mit einer weiteren Methode markiert werden, nur damit danach der Reiter für die Formatierung geöffnet wird. Alles alleine klappt auch einwandfrei.
Nun ist es aber leider so, dass mein Java Programm teilweise schon den Reiter für die Formatierung öffnet, obwohl das Textfeld noch nicht beschrieben wurde, etc. Ich hatte auch schon etwas gegoogelt, wie man das verhindern kann, und bin auf Threads gestoßen und die Funktion join(). Eigentlich hatte ich es so verstanden, dass bei join() so lange gewartet wird, bis der Thread durchgelaufen ist. Allerdings klappt es leider bei mir nicht.
Kann mir vielleicht jemand erklären, was ich falsch mache, und wie ich es wirklich verhindern kann, dass der Ablauf durcheinander gerät?
Das ist meine Methode, mit der Überschriften erstellt werden sollen:
Das ist die Thread-Klasse, die ich aktuell gebaut habe:
ich bin gerade dabei ein Programm mit Java zu programmieren, welches ein anderes mit Robot fernsteuert. Dort soll das Java Programm unter anderem automatisch Textfelder erstellen und diese dann nach bestimmten Vorgaben formatieren.
Nun bin ich auf das Problem gestoßen, dass sich nicht an die Reihenfolge der Programmcodes gehalten wird. Ich erstelle mit einer Methode ein beschriebenes Textfeld, dieses soll dann mit einer weiteren Methode markiert werden, nur damit danach der Reiter für die Formatierung geöffnet wird. Alles alleine klappt auch einwandfrei.
Nun ist es aber leider so, dass mein Java Programm teilweise schon den Reiter für die Formatierung öffnet, obwohl das Textfeld noch nicht beschrieben wurde, etc. Ich hatte auch schon etwas gegoogelt, wie man das verhindern kann, und bin auf Threads gestoßen und die Funktion join(). Eigentlich hatte ich es so verstanden, dass bei join() so lange gewartet wird, bis der Thread durchgelaufen ist. Allerdings klappt es leider bei mir nicht.
Kann mir vielleicht jemand erklären, was ich falsch mache, und wie ich es wirklich verhindern kann, dass der Ablauf durcheinander gerät?
Das ist meine Methode, mit der Überschriften erstellt werden sollen:
public static void überschriftGruppe (String nameG,)throws AWTException, InterruptedException{
MyThread t1 = new MyThread (nameG);
t1.start();
t1.join();
Robby.markieren(nameG);
Robbybaut.farbeWählenÖffnen();
Robbybaut.farbeWählenTextGruppe();
}
Das ist die Thread-Klasse, die ich aktuell gebaut habe:
public class MyThread extends Thread {
String nameG;
MyThread (String nameG){
this.nameG = nameG;
}
public void run (){
try {
Robbybaut.textfeld(nameG);
} catch (AWTException ex) {
Logger.getLogger(MyThread.class.getName()).log(Level.SEVERE, null, ex);
} catch (InterruptedException ex) {
Logger.getLogger(MyThread.class.getName()).log(Level.SEVERE, null, ex);
}
}
}