2013-10-02 3 views
0

Je crée un menu pour un jeu avec plusieurs JButtons, j'ai créé une nouvelle classe pour un mouseListener, et j'utilise mouseReleased pour exécuter mon code, puis j'ajoute cette classe à mon JButton. Donc, ma question est de savoir si je veux que mon second bouton exécute un code différent, ai-je besoin de créer une nouvelle classe ou est-ce que je peux le faire dans la classe Input, où mon code est pour mon premier bouton.Utiliser un mouseListener

JButton play = new JButton("Play"); 
    play.setBounds(299, 80, 170, 70); 
    play.addMouseListener(new Input()); 
    panel.add(play, null); 

Ceci est mon code pour mon mouseListener.

public void mouseReleased(MouseEvent e) 
{ 
    JFrame gameWindow = new JFrame(""); 
    gameWindow.setSize(Frame.windowWidth, Frame.windowHight); 
    gameWindow.add(new Draw()); 
    gameWindow.setVisible(true); 
    gameWindow.setLocationRelativeTo(null); 
} 
+1

pourquoi avez-vous ajouter un écouteur de la souris sur le bouton? –

+0

@FooBarUser Que voulez-vous dire, que devais-je faire d'autre? – user2457344

+0

Vous pouvez créer une autre classe qui implémente mouseListener ou vous pouvez utiliser getSource pour évaluer le propriétaire de l'événement, vous pouvez également ajouter un argument à votre classe Listener pour aider l'événement à savoir quoi faire et vous aurez besoin de 2 instances au lieu de 2 classes. – porfiriopartida

Répondre

0

Cela devrait faire l'affaire:

play.addActionListener(new ActionListener() {   
     public void actionPerformed(ActionEvent e) { 
     //Your Code Here  
     } 
    }); 
+0

Oui, mais pourquoi l'OP devrait l'utiliser ... copier et coller le code conduit à de nombreux développeurs en difficulté;) – MadProgrammer

+0

Merci pour la suggestion, mais je suis allé avec des conseils de porfiriopartida et d'utiliser .getSource, il était facile à comprendre et enregistre un peu de code. – user2457344