2010-05-21 4 views
0

Je suis confronté à un problème étrange lorsque j'utilise MicroSoft JVM pour exécuter mon Applet. J'ai un panneau AWT avec 4 champs de texte qui est ajouté à une boîte de dialogue. Tout se passe bien jusqu'à ce que j'entre une valeur décimale dans le champ de texte et ferme la boîte de dialogue. Lorsque je rouvre la boîte de dialogue, le champ de texte à l'intérieur du panneau avec tous les chiffres décimaux (entré à l'étape précédente) se comporte bizarrement. Les valeurs décimales avec la zone BLANCHE à l'intérieur du champ de texte se déplacent vers la gauche et masquent les chiffres. Lorsque je clique dans le champ de texte, cela devient normal. Le Panel avait auparavant une grille de distribution et j'ai même essayé de le changer en gridbaylayout et le problème persiste.AWT Textfield se comporte bizarrement avec MicroSoft JVM

NOTE: Tous sont le développement de JRE1.1 à concernait la compatibilité avec MS JVM

Si peut me aider avec ce que ce serait une grande aide. Merci d'avance.

public MyPanel(Dialog myDialog) 
{ 
    Panel panel = new Panel(); 
    this.dialog = myDialog; 

//Previous code with grid layout 

/* panel.setLayout(new GridLayout2(4,2,2,2)); 
    panel.add(new Label("Symbol:")); 
     panel.add(symbolField = new TextField("",20)); 
    panel.add(new Label("Quantity:")); 
    panel.add(qtyField = new TextField()); 
    panel.add(new Label("Price per Share:")); 
    panel.add(costField = new TextField()); 
    panel.add(new Label("Date Acquired:")); 
    panel.add(purchaseDate = new TextField());*/ 

    GridBagLayout gridbag = new GridBagLayout(); 
    System.out.println("######## Created New GridBagLayout"); 

    GridBagConstraints constraints = new GridBagConstraints(); 
    panel.setLayout(gridbag); 

    constraints = buildConstraints(constraints, 0, 0, 1, 1, 1.5, 1); 
    constraints.anchor = GridBagConstraints.WEST; 
    constraints.fill = GridBagConstraints.HORIZONTAL; 
    panel.add(new Label("Symbol:"), constraints); 

    constraints = buildConstraints(constraints, 1, 0, 1, 1, 1.5, 1); 
    constraints.anchor = GridBagConstraints.WEST; 
    constraints.fill = GridBagConstraints.HORIZONTAL; 
    panel.add(symbolField = new TextField("",20), constraints); 

    constraints = buildConstraints(constraints, 0, 1, 1, 1, 1.5, 1); 
    constraints.anchor = GridBagConstraints.WEST; 
    constraints.fill = GridBagConstraints.HORIZONTAL; 
    panel.add(new Label("Quantity:"), constraints); 

    constraints = buildConstraints(constraints, 1, 1, 1, 1, 1.5, 1); 
    constraints.anchor = GridBagConstraints.WEST; 
    constraints.fill = GridBagConstraints.HORIZONTAL; 
    panel.add(qtyField = new TextField(), constraints); 

    constraints = buildConstraints(constraints, 0, 2, 1, 1, 1.5, 1); 
    constraints.anchor = GridBagConstraints.WEST; 
    constraints.fill = GridBagConstraints.HORIZONTAL; 
    panel.add(new Label("Price per Share:"), constraints); 

    constraints = buildConstraints(constraints, 1, 2, 1, 1, 1.5, 1); 
    constraints.anchor = GridBagConstraints.WEST; 
    constraints.fill = GridBagConstraints.HORIZONTAL; 
    panel.add(costField = new TextField(), constraints); 

    constraints = buildConstraints(constraints, 0, 3, 1, 1, 1.5, 1); 
    constraints.anchor = GridBagConstraints.WEST; 
    constraints.fill = GridBagConstraints.HORIZONTAL; 
    panel.add(new Label("Date Acquired:"), constraints); 

    constraints = buildConstraints(constraints, 1, 3, 1, 1, 1.5, 1); 
    constraints.anchor = GridBagConstraints.WEST; 
    constraints.fill = GridBagConstraints.HORIZONTAL; 
    panel.add(purchaseDate = new TextField(), constraints); 
.............. 

......... 

} 

Répondre

0

J'ai trouvé une solution à ce problème. Placer la position du curseur de champ de texte à 0 (zéro) une fois que le "OK" est cliqué semble résoudre ce problème. Voici le code ....

symbolField.setCaretPosition(0); 
qtyField.setCaretPosition(0); 
costField.setCaretPosition(0); 
Questions connexes