2012-03-19 6 views
-1

J'ai un petit problème avec JTextField sur la machine RHEL5 japonaise que l'utilisateur ne peut pas taper quoi que ce soit en elle, je crée en utilisant la syntaxe suivanteImpossible de taper JTextField

Container c = getContentPane(); 
c.setLayout(new GridBagLayout()); 

GridBagConstraints gbc = new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0, 
GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(5, 5, 10, 0), 0, 0); 

c.setBackground(Color.WHITE); 
JTextField txtName = new JTextField(10); 
txtName.addKeyListener(new KeyListener() { 

     @Override 
     public void keyTyped(KeyEvent e) { 

     } 

     @Override 
     public void keyReleased(KeyEvent e) { 
      disableBtn(); 
     } 

     @Override 
     public void keyPressed(KeyEvent e) { 
      // TODO Auto-generated method stub 

     } 
    }); 
    gbc.gridx = 1; 
    gbc.fill = GridBagConstraints.HORIZONTAL; 
    gbc.anchor = GridBagConstraints.NORTHWEST; 
    c.add(txtName, gbc); 

désactive la méthode disableBtn() bouton sur la boîte de dialogue si l'utilisateur n'a pas tapé quoi que ce soit dans le champ de texte ci-dessus. Et en l'ajoutant à JPanel en utilisant la méthode add, j'utilise GridBagLayout pour cela. Ce problème se produit avec certains JTextField et d'autres fonctionnent correctement. Aussi, sur ma machine de développement tout fonctionne bien mais quand je transfère le code à la machine RHEL5 japonaise, il y a un problème.

J'ai fait face à problème similaire avec JPasswordField et résolu à l'aide suivante,

password.setEchoChar('*'); 
password.enableInputMethods(true); 

La machine problème ayant est d'avoir la sortie suivante de la commande "java -version",

# java -version 

java version "1.6.0_31" 
Java(TM) SE Runtime Environment (build 1.6.0_31-b04) 
Java HotSpot(TM) Server VM (build 20.6-b01, mixed mode) 

Ce que je pense est très bien. Y a-t-il quelque chose qui me manque ici?

+0

vous pouvez coller les extraits de code relatifs aux 'JTextField' qui ne sont pas éditables. – asgs

+2

Pour une meilleure aide plus tôt, postez un ** [SSCCE] (http://sscce.org/) **. Cela devrait être reproductible dans <20 lignes de code. BTW - * "Je le crée en utilisant la syntaxe suivante ' JTextField field = new JtextField(); '" * Non vous ne l'êtes pas! Ce code ne compilerait pas (en raison d'un mauvais cas). S'il vous plaît ne perdez pas le temps de personnes qui essaient de vous aider, en affichant «quelque chose comme» le code utilisé. *** Copier/Coller *** s'il s'agit d'un SSCCE ou d'extraits de code. –

+0

Oui, je l'ai tapé, mais il n'y a rien d'autre que cela. Je l'ai édité de toute façon. –

Répondre

3

1) votre code din't a montré ce qui est c.add(txtName, gbc), il pourrait y avoir raison la plus importante, je pense que vous demande assez Ignoré par @Andrew Thompson, le code affiché ici n'est pas SSCCE,

2) n » t utiliser Keylistener, parce que votre JTextComponent doit avoir setFocusable(), il me manque cette ligne de code, pour swing JComponents utilisation KeyBindings

3) pour listenening en JTextComponents utiliser uniquement DocumentListener

+0

Ajouté un peu plus de code, que je pensais ne pas être nécessaire. Etes-vous sûr que c'est le problème de KeyListner, car il ne se présente qu'en image quand la clé est tapée, dans mon cas la clé n'est pas du tout tapée et aussi sur la machine japonaise où je n'ai pas accès. Pourriez-vous élaborer davantage sur le problème de KeyListner par rapport à DocumentListener? –

+0

votre pensée était correcte, ce code ne parlait de rien, ContentPane est de JFrame, JDialog, JWindow, vous avez vraiment envie d'aider sur ce forum, pourquoi nous devons vous demander de l'aide, code que vous avez posté ici parle de 10pct potentiel questions qui existent autour de ... – mKorbel

+0

s'il vous plaît jeter un oeil à ma question soigneusement, il a une déclaration sur Dialog juste après le code que j'ai posté. Si vous voulez aider, alors aidez plutôt que de critiquer. \ m/ –

Questions connexes