L'accès variable statique à partir d'une autre classe

J'ai deux classes du même package. j'ai déclaré un static variable dans une classe et souhaitez accéder à cette variable dans une autre classe.

Voici mon code dans lequel j'ai déclaré une variable statique

public class wampusGUI extends javax.swing.JFrame {

    static String userCommand;

    public wampusGUI() {
        initComponents();
    }

    public void setTextArea(String text) {
        displayTextArea.append(text);
    }

    private void enterButtonActionPerformed(java.awt.event.ActionEvent evt) {
        userCommand = commandText.getText();
    }

    public static void main(String args[]) {
        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {
                wampusGUI w = new wampusGUI();
                w.setVisible(true);
                Game g = new Game(w);
                g.play();
            }
        });
    }
}

Voici le code dont je veux accéder à une variable

public class Game {

    private wampusGUI gui;

    public Game(wampusGUI w) {
        world = new World();
        world.start();
        gui = w;
    }

    public void play() {
        gui.setTextArea(welcome());
        gui.setTextArea(describe());
        for (;;) {
            String s = userCommand; //here value should come should 
            System.out.println(userCommand);
            Command c = Command.create(s);
            String r = c.perform(world);
            //is game over?
            if (r == null) {
                break;
            }
            System.out.println(r);
        }
        System.out.println("Game over");
    }
}

Cependant, je peux passer la variable de première classe comme un argument. mais le problème est que, lorsque je lance le programme, la valeur null première fois, je ne veux pas. je veux quand je entrer une valeur dans textfield, alors il devrait aller à une autre classe.

Merci.

Qu'entendez-vous par "la valeur null première fois"? Fondamentalement, vous devriez être en train de changer votre conception - avoir une variable globale est vraiment pas une bonne solution.
Je suis d'accord avec @jon. Votre Chaîne de ne pas avoir une bonne valeur jusqu'à ce que l'utilisateur a eu la chance de le changer. Aussi votre toujours pour la boucle n'est pas un bon modèle pour une application Swing. Je me demandais si vous voulez vraiment utiliser un écouteur au lieu de l'écouter pour l'utilisateur de changer un component swing jtextfield de l'état et à agir sur le présent. Peut-être vous aurez également besoin de regarder dans l'aide d'un Swing Timer, difficile de savoir si jusqu'à ce que nous en savons plus au sujet de votre programme et ce qu'il est censé faire.
S'il vous plaît dites-nous: qu'essayez-vous de faire avec ce code?
ce que je suis en train de faire est , en première interface graphique de fichiers lorsque l'utilisateur doit entrer le texte dans textarea et appuyez sur enter alors que la valeur doit aller dans une autre classe play() method et qui va exécuter la commande par command class

OriginalL'auteur RK. | 2012-09-13