Avatar billede Zeebaah Praktikant
04. november 2013 - 11:29 Der er 7 kommentarer og
1 løsning

Multithreading

Hej er ved at lave et java program til at styre en robot der hedder NAO.

Når jeg trykker på en knap hvor robotten f.eks. skal gå, så fryser programmet indtil at robotten har udført hele handlingen.

Gætter på at jeg så skal bruge multithreading.

Hvordan kan jeg på min Controller classe få gjort sådan at den køre i en anden tråd?

public class Controller implements ActionListener {
    private MainGUI gui;
    private NAO nao = new NAO();

    public Controller(MainGUI gui) {
        this.gui = gui;
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        if (gui != null) {
            nao.setConnection(gui.getIp(), "9559");
            if (e.getSource() == gui.btnTalk) {
                nao.setBesked(gui.getTextToSay());
                nao.naoSay();
            } else if (e.getSource() == gui.btnPosture) {
                nao.doPose(gui.getSelectedPoseName());
            } else if (e.getSource() == gui.btnBehavior) {
               
                nao.runBehavior(gui.getSelectedBehaviorName());
            }
        }
    }

}
Avatar billede simonvalter Praktikant
04. november 2013 - 12:08 #1
Prøv og kig på swingutils klassen. Du skal modificere GUI fra event dispatch tråden ellers risikerer du deadlocks.
Avatar billede arne_v Ekspert
05. november 2013 - 03:32 #2
Umiddelbart tror jeg at det er omvendt: actionPerformed bliver kaldt fra event traaden og det blokerer event traaden - og der skal startes en traad.
Avatar billede Zeebaah Praktikant
05. november 2013 - 08:55 #3
Arne: er der en måde man nemt kan starte den controller class som en ny tråd?
Avatar billede arne_v Ekspert
06. november 2013 - 01:22 #4
Man skal iukke koere controller som en ny traad.

Du skal lade din controller starte en traad for at goere det som tager lang tid.
Avatar billede Zeebaah Praktikant
06. november 2013 - 08:20 #5
Har desvære vidst aldrig fået lært at lave tråde pg benytte mig af flere tråde af gangen, du skulle vel ikke kende til en side med en god tutorial, så jeg kan få det lært
Avatar billede Zeebaah Praktikant
09. januar 2014 - 13:02 #7
Arne hvis du lægger et svar så godkender jeg den... havde vidst lige glemt at få lukket tråden :)
Avatar billede arne_v Ekspert
09. januar 2014 - 14:56 #8
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester