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()); } } } }
Annonceindlæg tema
Forsvar & beredskab
Cybersikkerhed, realtidsdata og robuste it-systemer er blevet fundamentet for moderne forsvar.
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.
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.
05. november 2013 - 08:55
#3
Arne: er der en måde man nemt kan starte den controller class som en ny tråd?
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.
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
15. december 2013 - 04:46
#6
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 :)
09. januar 2014 - 14:56
#8
svar
Kurser inden for grundlæggende programmering