2010-02-08 6 views
0

Hé les gars, voir ce Snipped de code:JTextField - Java swing - pas de curseur?

JFrame loginFrame = new JFrame("Login"); 

    loginFrame.setSize(500,400); 
    JPanel loginPanel = new JPanel(); 
    loginPanel.setLayout(new GridLayout(0,2)); 

    JLabel header = new JLabel("Login"); 
    JLabel header2 = new JLabel("blahvlah"); 
    JLabel loginLabel = new JLabel("Login"); 
    JTextField loginField = new JTextField(24); 
    JLabel passLabel = new JLabel("Password"); 
    JTextField passField = new JTextField(24); 

    loginPanel.add(header); 
    loginPanel.add(header2); 
    loginPanel.add(loginLabel); 
    loginPanel.add(loginField); 
    loginPanel.add(passLabel); 
    loginPanel.add(passField); 

    loginFrame.add(loginPanel); 
    loginFrame.setVisible(true); 
loginframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

les JTextFields sont présents sur l'application, mais je ne peux pas entrer quoi que ce soit en eux? Il n'y a pas de curseur non plus, quel est le problème? Aussi, ma sortie de près ne semble pas fonctionner?

grâce

+0

@keval: Y at-il un code que nous ne voyons pas ici? Essayez de tout supprimer du code qui n'est pas lié à la création d'un seul 'JTextField' (ou créez une nouvelle application affichant uniquement un' JTextField'), et vérifiez si vous pouvez le reprogrammer. –

Répondre

7

Le code affiché ne compile pas (sur la dernière ligne que vous avez saisi loginframe au lieu de loginFrame). Après avoir corrigé cela, le programme suivant:

public class JFrameTest { 
    public static void main(String[] args) { 
     JFrame loginFrame = new JFrame("Login"); 

     loginFrame.setSize(500,400); 
     JPanel loginPanel = new JPanel(); 
     loginPanel.setLayout(new GridLayout(0,2)); 

     JLabel header = new JLabel("Login"); 
     JLabel header2 = new JLabel("blahvlah"); 
     JLabel loginLabel = new JLabel("Login"); 
     JTextField loginField = new JTextField(24); 
     JLabel passLabel = new JLabel("Password"); 
     JTextField passField = new JTextField(24); 

     loginPanel.add(header); 
     loginPanel.add(header2); 
     loginPanel.add(loginLabel); 
     loginPanel.add(loginField); 
     loginPanel.add(passLabel); 
     loginPanel.add(passField); 

     loginFrame.add(loginPanel); 
     loginFrame.setVisible(true); 
     loginFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    } 
} 

fonctionne très bien. Je peux saisir du texte dans les deux JTextFields et peut également fermer la JFrame:

alt text http://i45.tinypic.com/15wqvk.png

+0

il semble tout à fait différent sur mon système, im fonctionnant sous linux et en utilisant eclipse, peut-être mon jdk n'est pas configuré correctement? – KP65

+0

J'ai redimensionné le JFrame un peu avant de créer une capture d'écran de celui-ci. Et les composants de l'interface graphique peuvent différer en fonction du gestionnaire de fenêtres sous-jacent (j'utilise Ubuntu + Gnome). Avez-vous couru le cours que j'ai posté? Quel JRE avez-vous installé? Je recommande de créer une nouvelle classe 'JFrameTest' et de copier le dessus. Puis compilez-le et lancez-le depuis votre ligne de commande. –

+0

Grande réponse/niveau de détail. J'adore le fait que vous avez ajouté la capture d'écran. –