2016-12-27 3 views
-1

ich das Kartenlayout Arbeiten gemacht völlig in Ordnung, aber was jetzt passiert ist, ich ein keyListener zum Objektcharakter hinzugefügt, die ein JLabel ist so, wenn die Person den Charakter bewegen sollte drückt, aber es tut absolut nichts!Position bewegen trotz der Key Zuhörer

Ich habe auch versucht es mit einem Knopf zu ersetzen, die es sich bewegt, wenn darauf geklickt und es funktionierte ganz gut. Auch habe ich versucht, das Ereignis zu ändern bedeutet, ich geändert, dass, wenn sie nach oben drücken dann das Bild der Stadt Karte ändern würde, aber immer noch keine Wirkung, so dass es scheint, gibt es etwas falsch mit meinem KeyListener

import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.awt.*; import javax.swing.*;

@SuppressWarnings({ "unused", "serial" }) public class FinalBlowzXC extends JFrame implements KeyListener{

public static JPanel game=new JPanel(); 
public static JPanel mainmenu=new JPanel(null); 
public static JPanel loginpanel=new JPanel(null); 
public static JPanel tutorial=new JPanel(null); 
public static JPanel registration=new JPanel(null); 
public static JPanel town_map=new JPanel(null); 
public JTextField username= new JTextField("Username"); 
public JTextField password=new JTextField("Password"); 
public JLabel bglogin=new JLabel(); 
public JLabel character=new JLabel(); 
public JButton log_in=new JButton(); 
public JButton register=new JButton(); 
CardLayout page= new CardLayout(); 
public String level=""; 
public int charx=350; 
public int chary=435; 

public static void main(String []args) 
{ 
    new FinalBlowzXC().setVisible(true); 
} 

public FinalBlowzXC() 
{ 
    super("Final Blowz Xchanged"); 
    setSize(640,510); 
    setResizable(false); 
    setDefaultCloseOperation(EXIT_ON_CLOSE); 

    game.setLayout(page); 
    game.add(mainmenu, "1"); 
    game.add(loginpanel, "2"); 
    game.add(tutorial, "3"); 
    game.add(registration, "4"); 
    game.add(town_map, "5"); 
    add(game); 
    opening(); 
} 

    public void opening() 
    { 
     page.show(game, "1"); 
     JLabel bgmainmenu; 
     JButton start; 
     JButton exit; 
     bgmainmenu = new JLabel(); 
     start = new JButton(); 
     exit = new JButton(); 

     bgmainmenu.setIcon(new ImageIcon(getClass().getResource("/FF-XV.jpg"))); 
     bgmainmenu.setBounds(0,0,640,480); 
     mainmenu.add(bgmainmenu); 
     mainmenu.add(start); 
     start.setBounds(280, 360, 70, 20); 
     start.setBorder(null); 
     start.setBorderPainted(false); 
     start.setContentAreaFilled(false); 
     start.setOpaque(false); 
     start.addActionListener(new Start()); 
     exit.setBounds(280, 385, 70, 20); 
     mainmenu.add(exit); 
     exit.setBorder(null); 
     exit.setBorderPainted(false); 
     exit.setContentAreaFilled(false); 
     exit.setOpaque(false); 
     exit.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent e) 
      { 
       System.exit(0); 
      } 
     }); 
    } 


    class Start implements ActionListener{ 

    public void actionPerformed(ActionEvent e) {  
      login(); 

    } 

} 

    public void login() 
    { 
     page.show(game, "2"); 

     bglogin.setIcon(new ImageIcon(getClass().getResource("/FF-XV Login.jpg"))); 
     bglogin.setBounds(0, 0, 640, 480); 


     username.setBounds(300, 285, 85, 15); 
     username.setBorder(null); 
     username.setForeground(Color.WHITE); 
     username.setOpaque(false); 

     password.setBounds(300, 310, 85, 20); 
     password.setBorder(null); 
     password.setForeground(Color.WHITE); 
     password.setOpaque(false); 

     log_in.setBounds(280, 335, 50, 45); 
     log_in.setBorder(null); 
     log_in.setBorderPainted(false); 
     log_in.setContentAreaFilled(false); 
     log_in.setOpaque(false); 
     log_in.addActionListener(new Log_in()); 

     register.setBounds(335, 335, 55, 45); 
     register.setBorder(null); 
     register.setBorderPainted(false); 
     register.setContentAreaFilled(false); 
     register.setOpaque(false); 
     register.addActionListener(new Register()); 

     loginpanel.add(username); 
     loginpanel.add(password); 
     loginpanel.add(bglogin); 
     loginpanel.add(log_in); 
     loginpanel.add(register); 
    } 

    class Log_in implements ActionListener{ 

     public void actionPerformed(ActionEvent e) 
     { 
      Tutorial(); 

     } 

    } 

    class Register implements ActionListener{ 

     public void actionPerformed(ActionEvent e) 
     { 
      page.show(game, "4"); 
     } 
    } 

    public void Tutorial() 
    { 
     page.show(game, "3"); 
     JLabel bgtutorial=new JLabel(); 
     JLabel animeforward=new JLabel(); 
     JLabel animeright=new JLabel(); 
     JLabel animeleft=new JLabel(); 
     JButton next=new JButton(); 
     JLabel animebackward=new JLabel(); 
     bgtutorial.setIcon(new ImageIcon(getClass().getResource("/FF-XV Tutorial.jpg"))); 
     bgtutorial.setBounds(0, 0, 640, 480); 
     animeforward.setIcon(new ImageIcon(getClass().getResource("walkanimofficialfront.gif"))); 
     animeforward.setBounds(115, 230, 30, 30); 
     animeright.setIcon(new ImageIcon(getClass().getResource("walkanimofficialright.gif"))); 
     animeright.setBounds(190, 315, 30, 30); 
     animeleft.setIcon(new ImageIcon(getClass().getResource("walkanimofficialleft.gif"))); 
     animeleft.setBounds(45, 315, 30, 30); 
     animebackward.setIcon(new ImageIcon(getClass().getResource("walkanimofficialback.gif"))); 
     animebackward.setBounds(115, 405, 30, 30); 
     next.setBounds(530, 430, 100, 30); 
     next.setBorder(null); 
     next.setBorderPainted(false); 
     next.setContentAreaFilled(false); 
     next.setOpaque(false); 
     next.addActionListener(new Next()); 
     tutorial.add(next); 
     tutorial.add(animeright); 
     tutorial.add(animeleft); 
     tutorial.add(animebackward); 
     tutorial.add(animeforward); 
     tutorial.add(bgtutorial); 

    } 

    class Next implements ActionListener{ 

     public void actionPerformed(ActionEvent e) 
     { 
      town(); 
     } 
    } 

    public void town() 
    { 
     page.show(game, "5"); 
     JLabel map=new JLabel(); 
     map.setIcon(new ImageIcon(getClass().getResource("/FF-XV Town.jpg"))); 
     map.setBounds(0, 0, 640, 480); 
     character.setIcon(new ImageIcon(getClass().getResource("standfront.png"))); 
     character.setBounds(charx, chary, 30, 35); 
     town_map.add(character); 
     town_map.add(map); 

    } 


    public void keyPressed(KeyEvent e) { 
     if(e.getKeyCode()==KeyEvent.VK_UP) 
     { 
      character.setIcon(new ImageIcon(getClass().getResource("walkanimofficialfront.gif"))); 
      character.setLocation(character.getX(), character.getY()+5); 
     } 

     if(e.getKeyCode()==KeyEvent.VK_RIGHT) 
     { 
      character.setIcon(new ImageIcon(getClass().getResource("walkanimofficialright.gif"))); 
      character.setLocation(character.getX()+5, character.getY()); 
     } 

     if(e.getKeyCode()==KeyEvent.VK_LEFT) 
     { 
      character.setIcon(new ImageIcon(getClass().getResource("walkanimofficialleft.gif"))); 
      character.setLocation(character.getX()-5, character.getY()+5); 
     } 

     if(e.getKeyCode()==KeyEvent.VK_DOWN) 
     { 
      character.setIcon(new ImageIcon(getClass().getResource("walkanimofficialback.gif"))); 
      character.setLocation(character.getX(), character.getY()-5); 
     } 

    } 


    public void keyReleased(KeyEvent e) { 


    } 

    public void keyTyped(KeyEvent e) { 


    } 

}

+0

* „Ich möchte, dass die Karten-Layout aber aus irgendeinem Grund zu arbeiten, ist es nicht funktioniert“ * Der Grund ist sehr spezifisch und Programmierer müssen regelmäßig mit dieser Art von Problemen befassen. Siehe [Was ist ein Stack-Trace und wie kann ich ihn zum Debuggen von Anwendungsfehlern verwenden?] (Http://stackoverflow.com/q/3988788/418556) & [Was ist ein Null-Pointer-Ausnahmefehler und wie behebe ich ihn? es?] (http://stackoverflow.com/q/218384/418556) –

+0

Bitte entstellen Sie Ihre Frage nicht. Dies ist völlig gegen Site-Regeln. –

Antwort

1

Hinzufügen in Ihrem Programm folgenden Code ein.

public static JPanel mainmenu = new JPanel(); 
public static JPanel loginpanel = new JPanel(); 

oder initialisieren mainmenu & loginpanel bevor sie in die game Panel hinzuzufügen.

+0

Es funktioniert jetzt ganz gut Vielen Dank !!! –

+0

Dann bitte upvote es .. !!! – Pradnyarani

+0

Ich tat aber aufgrund meines guten Rufs nicht über 15 Ich bin dazu nicht in der Lage –

0

, wenn Sie anrufen game.add(loginPanel, "2")loginPanel ist null

Verwandte Themen