2017-02-20 5 views
1

Ich habe ein Textfeld im Dialogfeld. Wenn ich versuche, etw einzugeben, geht es einfach aus. Was ist gerade hier passiert? Ich habe das Video aufgenommen. bitte guck dir das an. https://youtu.be/HhwoPWJDG1MTastatur Fokus Problem in Textfeld (Codenameon)

Code:

super(new BoxLayout(BoxLayout.Y_AXIS)); 
setScrollableY(false); 
Container mainContainer = new Container(new BorderLayout(BorderLayout.CENTER_BEHAVIOR_CENTER)); 
add(mainContainer); 
Label logo = new Label(); 
mainContainer.addComponent(BorderLayout.NORTH, logo); 
Button forgotPassword = new Button("FORGOT PASSWORD"); 
- - - - - - - - - - - - 
//r components added to main form 
- - - - - - - - - - - - 
Container centerContainer = BoxLayout.encloseY(userNameField, passwordSection, forgotPassword); 
mainContainer.add(BorderLayout.CENTER, centerContainer); 


TableLayout tl = new TableLayout(1, 2); 
Container passwordSection = new Container(tl); 
passwordSection.add(tl.createConstraint(). 
    widthPercentage(80),passwordField). 
    add(tl.createConstraint().verticalAlign(Component.CENTER).widthPercentage(19), sendButton); 

**//this is the dialog box where problem exists** 
forgotPassword.addActionListener(e -> { 
    Dialog d = new Dialog(); 
    TextField emailTextField = new TextField(); 
    emailTextField.setHint("Enter your email here"); 
    d.setLayout(new BoxLayout(BoxLayout.Y_AXIS)); 
    d.add(emailTextField); 
    Button submit = new Button("Submit"); 
    d.add(submit); 
    d.showPopupDialog(logo); 
}); 

Antwort

1

Das Problem kommt von der Verwendung showPopup() Dialog und nicht aus autoDisposing zu halten. Verwenden eines von showPacked() oder showStretched() und seine Position definieren und dann den Dialog autoDispose() auf false:

d.setAutoDispose(false); //reason dialog is disposing quickly 
d.setDisposeWhenPointerOutOfBounds(true); 
d.showPacked(BorderLayout.NORTH, true);