2009-03-16 10 views
1

Ok, donc je suis assez noob chez JAVA, et la programmation en général vraiment. J'essaie de faire une application rock, papier, ciseaux qui fonctionne avec une interface graphique. Ce que j'essaie est la chose la plus simple que je pensais, appuyez sur un bouton pour votre choix (r, p ou s) et cela fera une variable utilisée dans le reste du programme pour comparer au choix de l'ordinateur, trouver le gagnant , etc. J'ai déjà travaillé sur le programme, le problème est lié à l'interface graphique. J'utilise netbeans et un JFrame, ce qui est complètement nouveau pour moi. J'ai beaucoup de questions, et peut-être y a-t-il un tutoriel pour moi auquel quelqu'un pourrait faire un lien, mais l'utilisation du site officiel de netbeans n'a pas beaucoup aidé jusqu'ici. Quoi qu'il en soit:en utilisant les boutons dans le cadre de gui netbeans

  1. Je ne sais pas où mettre mon code principal de la méthode qui serait dans le programme de texte, faire une nouvelle classe, ou le mettre dans la principale méthode du cadre que j'utilise. Pour cette raison, la raison pour laquelle je ne peux même pas compiler est que la fonction principale essaie d'utiliser la variable que je veux faire dans le bouton. Tout l'ordre de fonctionnement est inconnu pour moi, je suppose. J'ai regardé les exemples netbeans et je pense que je pourrais faire ce travail en faisant quelque chose d'un peu plus complexe, mais il semble inutile?

Répondre

0

Vous voulez trouver des articles et des tutoriels sur Swing.

est ici un peu de code pour vous aider:

// RockPaperScissors is the JFrame as well as the KeyListener. 
// You could make another class to handle the key presses instead by doing: 
// addKeyListener(new myOtherClass()); 
// So long as myOtherClass implements KeyListener 
class RockPaperScissors extends JFrame implements KeyListener { 
    public RockPaperScissors() { 
    // Listen for any key presses. 
    addKeyListener(this); 
    } 

    public void keyPressed(KeyEvent e) { 
    // Figure out which key was pressed based on it's code. 
    // http://java.sun.com/j2se/1.4.2/docs/api/java/awt/event/KeyEvent.html 
    switch (e.getKeyCode()) { 
     case e.VK_R: 
     // Rock 
     break; 
     case e.VK_P: 
     // Paper 
     break; 
     case e.VK_S: 
     // Scissors 
     break; 
    } 
    } 

    // You can use these if you want, but we don't care about them. 
    public void keyReleased(KeyEvent e) { } 
    public void keyTyped(KeyEvent e) { } 
} 

void main() { 
    // Set up the GUI (which is just a JFrame!) 
    new RockPaperScissors(); 
    // The main program can exit because the JFrame runs on it's own thread. 
} 
1

Voici un bon endroit pour commencer learning about Swing. Je vous mets en garde que l'utilisation de NetBeans est grand si vous essayez de manivelle une grande interface graphique rapidement, mais peut causer plus de problèmes qu'elle n'en résout si vous n'êtes pas déjà familier avec le fonctionnement de Swing.

Quelques conseils de ce que j'ai appris sur mes projets:

  • réfléchir à ce que le modèle sous-jacent du programme sera avant de commencer à écrire l'interface graphique. Par exemple, peut-être vous utilisez une classe de jeu comme celui-ci pseudocode:
Start a new game 
    Get the player's choice 
    Randomly generate a choice for the computer 
    Compare the choices 
     if the player's choice is stronger 
     player wins 
     else computer wins 
    return the winner
  • En utilisant le modèle Model-View-Controller est un bon endroit pour commencer quand vous avez une interface graphique pour construire. Cela garantit qu'il y a une séparation entre les composants de votre programme; Si vous avez besoin de changer la vue ou le modèle, vous ne cassez pas les autres composants. Ce que cela signifie en pratique pour Java est que vous enveloppez la vue et le contrôleur ensemble, en étendant généralement un JFrame comme indiqué par qpingu. Le JFrame aura besoin d'une référence à votre classe de modèle et aux panneaux qui contiennent les différents contrôles.

1

L'endroit pour commencer à mettre dans le code comme vous êtes habitué dans le répertoire du paquet source habituellement appelé ce que vous vous avez appelé nouveau projet: YourFileName.java

La clé est de rechercher le nom ajouté dans la configuration dans les noms de fichiers dans le nouveau projet.

Une fois entré, certaines méthodes démarrent l'application pour vous. Et en bas se trouve le principal() que vous et moi connaissons le plus :).

... 

    @Override 
    protected void configureWindow(java.awt.Window root) { 
    } 

    /** 
    * A convenient static getter for the application instance. 
    * @return the instance of DesktopApplication1 
    */ 


    public static DesktopApplication1 getApplication() { 
     return Application.getInstance(DesktopApplication1.class); 
    } 

    /** 
    * Main method launching the application. 
    */ 

    public static void main(String[] args) { 
    launch(DesktopApplication1.class, args); 

    } 
} 

Personnellement, je préfère l'application de bureau car elle commence avec beaucoup de code pré-généré pour vous.

Questions connexes