2016-12-22 3 views
1

J'essaie de rendre mon entrée JTextField visible à mes autres classes. Je ne vais pas encombrer la page avec une tonne de code, juste où le problème est. J'ai fait beaucoup de recherches en ligne, mais je n'arrive à rien.comment rendre l'entrée JTextField accessible dans d'autres classes

public class browseropen extends JFrame { 

    public browseropen() { 
     setDefaultCloseOperation(EXIT_ON_CLOSE); // setting app close on exit 
     JPanel panel = new JPanel(); // creating new app panel 

     JTextField urltxt = new JTextField(10); // establishing new text field for URL input 
     urltxt.addActionListener(new ActionListener() { // adding event for enter key 
      @Override 
      public void actionPerformed(ActionEvent event) { 
       runClient();    // run browser open command 
      } 
     }); 

     public String geturltxt() { // attempting to set input of JTextField to be available in other class 

        return urltxt.getText(); 

       } 

Je vous serais reconnaissant toute idée que je commence juste à apprendre Java et que vous voulez apprendre la bonne façon :)

Edit: le problème est dans geturltxt

+0

Vous pouvez faire de JTextField un champ de classe et lui ajouter un getter. En plus, les noms de classes Java doivent être PascalCase. – Thibstars

+1

@GhostCat Je devrais avoir posté mon commentaire comme réponse, j'aurais été minutes avant vous;) – Thibstars

+1

@Thibstars Juste pour être sûr: je n'ai pas eu besoin de lire votre commentaire afin d'obtenir ma réponse vers le bas; -) ... mais vous avez été indemnisé. Joyeuses fêtes ;-) – GhostCat

Répondre

3

La réponse facile est: tour cette variable locale dans un champ de votre classe, comme

public class BrowserOpen extends JFrame { 
    private final JTextField urltxt; // to be init'ed in your constructor for example 

Et le tour est joué, maintenant vos autres méthodes peuvent utiliser cette champ urltxt. Remarques: veuillez lire les guides de codage java pour obtenir les noms de classes/champs «corrects».

+0

donc j'ajouterais 'urltext urltext = new JTextField();' à mon browseropen() –

+1

Exactement. Mais au-delà de cela: vous voudrez probablement prendre du recul par rapport au codage de l'interface utilisateur pour un peu plus d'apprentissage. Vous savez que les "champs" et les "variables" sont des choses "super basiques". Et si vous ne connaissez pas de telles choses, mieux vaut ** apprendre ** à leur sujet en premier. En d'autres termes: pensez à apprendre à explorer avant d'essayer de courir. Swing UI programmation est une entreprise ** compliquée ** - et il semble que vous n'êtes pas prêt pour cela (encore). – GhostCat

+0

merci pour l'aide! –