Forum: Starta om en applikation.

Forum huvudsida -> Programmering -> Starta om en applikation.

Sidor: 1

Till botten

b_k 19:05 - 28:e Mars 2008 | Post #1
Medlem
Inlägg: 5


Skicka PM
Hej hej!
Har lagt in några menyer i min applikation som är kopplade till olika händelser. Meny n som jag inte kan koppla till en händelse är Nytt spel, jag vill nämligen att programmet ska startas om så att spelaren kan köra en ny omgång utan att behöva stänga ner det och öppna igen.
Visst måste det gå? eller är det inte möjligt?

provat med koden 47 på system exit men den stänger ner programmet. har skrivit så här i ett desperat försök att rita om spelplanen, men ingenting händer...

Hoppar ni har tips på hur jag kan göra.

  1. JMenuItem menuItem3 = new JMenuItem(); //nytt spel under instEURllningar
  2. menu.add(menuItem3);
  3.  
  4. //Nytt spel
  5. Action changeAction = new AbstractAction("Nytt spel"){
  6. public void actionPerformed(ActionEvent e){
  7. spelplan1.removeAll();
  8. spelplan2.removeAll();
  9. drawPlayGround1();
  10. drawPlayGround2();
  11. repaint();
  12. validate();
  13. }
  14. };
  15. menuItem3.setAction(changeAction);





FunkyChicken 20:33 - 28:e Mars 2008 | Post #2
Nyhetsredaktör
Inlägg: 800


Skicka PM
Att starta om *programmet* är fel sätt. ...terställ istället alla variabler till sina "startvärden" när du vill börja om från början. Om din funktion är rätt sätt att göra detta är lite svårt att avgöra, det beror nog på hur DrawPlayGround, etc ser ut.




b_k 21:34 - 28:e Mars 2008 | Post #3
Medlem
Inlägg: 5


Skicka PM
Aha! drawPlayGround1 som är då ett av spelplanen, ser ut så här:
  1. private void drawPlayGround1(){ // Den egna spelarens spelplan
  2. int i,j;
  3.  
  4. spelplan1.add(new JLabel(""));
  5. spelplan1.add(new JLabel("S"));
  6. spelplan1.add(new JLabel("P"));
  7. spelplan1.add(new JLabel("E"));
  8. spelplan1.add(new JLabel("L"));
  9. spelplan1.add(new JLabel("P"));
  10. spelplan1.add(new JLabel("L"));
  11. spelplan1.add(new JLabel("A"));
  12. spelplan1.add(new JLabel("N"));
  13. spelplan1.add(new JLabel(""));
  14.  
  15.  
  16. for(i=0;i<10;i++){
  17. for(j=0; j<11; j++){
  18. if(j==0){
  19. }else {
  20. if(skjutMatris[i][j-1] == 0){ // Buttons i [j-1]
  21. String v = ""+i+""+(j-1)+"";
  22. jbutte[i][j-1] = new JButton(v,(new ImageIcon("water.gif")));//[j-1]
  23. jbutte[i][j-1].addActionListener(new spelHandler1());//[j-1]
  24.  
  25. spelplan1.add(jbutte[i][j-1]);
  26. }
  27. if(skjutMatris[i][j-1] == 1){ //Bilder BOM
  28. spelplan1.add(new JLabel(new ImageIcon("splash.gif")));
  29. }
  30. if(skjutMatris[i][j-1] == 2){ //Bilder TRFF
  31. spelplan1.add(new JLabel(new ImageIcon("ship.gif")));
  32. }
  33. if(skjutMatris[i][j-1] == 3){ //Bilder SKEPP
  34. spelplan1.add(new JLabel(new ImageIcon("ship.gif")));
  35. }
  36. if(skjutMatris[i][j-1] == 5){ //Bilder VATTEN
  37. spelplan1.add(new JLabel(new ImageIcon("water.gif")));
  38. }
  39.  
  40. }
  41. }
  42. }
  43. }





b_k 19:57 - 31:a Mars 2008 | Post #4
Medlem
Inlägg: 5


Skicka PM
Så vad tycker du? ,,r det drawPlayGround1 jag ska anropa, ser den rätt ut? eller är det något helt annat?

För det är ju den som rita om allting från början...




FunkyChicken 21:17 - 31:a Mars 2008 | Post #5
Nyhetsredaktör
Inlägg: 800


Skicka PM
Gör det du gör när programmet startas första gången.




b_k 11:36 - 2:a April 2008 | Post #6
Medlem
Inlägg: 5


Skicka PM
Tänkte också på det och skrev så, men det som händer är att ett nytt fönster öppnas och man kan fortsätta spela där. Det jag vill är ju att samma fönster ska uppdateras och startas om på nytt....




Hetzz 12:37 - 2:a April 2008 | Post #7
Medlem
Inlägg: 516


Skicka PM
    Citat av b_k:
Tänkte också på det och skrev så, men det som händer är att ett nytt fönster öppnas och man kan fortsätta spela där. Det jag vill är ju att samma fönster ska uppdateras och startas om på nytt....

Testa att göra som du gör när du startar för första gången(som fc skrev) men se till att utelämna den delen som har med att skapa fönstret och liknande.


-------------------------





FunkyChicken 13:04 - 2:a April 2008 | Post #8
Nyhetsredaktör
Inlägg: 800


Skicka PM
Eller snarare, du ska upprepa det du gör när fönstret initialiseras, inte när hela programmet startas (för det involverar ju att skapa fönstret ^^).

Alternativet är förstås att skapa ett nytt fönster och förstöra det gamla, men det är inte "rätt".




Hetzz 11:50 - 3:e April 2008 | Post #9
Medlem
Inlägg: 516


Skicka PM
    Citat av FunkyChicken:
Eller snarare, du ska upprepa det du gör när fönstret initialiseras, inte när hela programmet startas (för det involverar ju att skapa fönstret ^^).

Alternativet är förstås att skapa ett nytt fönster och förstöra det gamla, men det är inte "rätt".


Men helt klart ett fungerande fulhack om jag förstår det rätt?Smiley

-------------------------





FunkyChicken 08:29 - 4:e April 2008 | Post #10
Nyhetsredaktör
Inlägg: 800


Skicka PM
hmm jo.




Sidor: 1

Forum huvudsida -> Programmering -> Starta om en applikation.
Atom feed

Du får inte posta i den här tråden | Till toppen