Reputation: 3027
I have a textfield in dialog box. When I try to type smth in it, it just goes out. What just happened here. I have captured the video. please have a look. https://youtu.be/HhwoPWJDG1M
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);
});
Upvotes: 1
Views: 63
Reputation: 7483
The problem comes from using showPopup()
Dialog and not keeping it from autoDisposing. Use one of showPacked()
or showStretched()
and define its position, then set the dialog autoDispose()
to false:
d.setAutoDispose(false); //reason dialog is disposing quickly
d.setDisposeWhenPointerOutOfBounds(true);
d.showPacked(BorderLayout.NORTH, true);
Upvotes: 1