我将JTextField
的可见性设置为false
,当我单击一个按钮时,该按钮应该立即显示,但是直到我调整窗口大小时,它才显示。
我正在使用包含树文本字段(用户名,密码和确认密码(在我按下注册按钮之前,其可见性设置为false,直到我按下注册按钮)的Swing才构建了一个登录/'注册'应用程序。但是该文本字段直到我调整了窗口的大小,但似乎无法弄清问题所在,我使用了与另一个项目相同的“代码结构”,根本没有任何问题。
您可以看到下面的代码:
setTxtusername(new JTextField("Entrez username",20)); getTxtusername().setVisible(true); setTxtpassword(new JTextField("Entrez Password",20)); getTxtpassword().setVisible(true); setTxtconfirmer(new JTextField("Confirmer Password",20)); getTxtconfirmer().setVisible(false); setBtnlogin(new JButton("Login")); getBtnlogin().setVisible(true); getBtnlogin().addActionListener(l); getBtnlogin().setActionCommand("login"); setBtnsignup(new JButton("Sign up")); getBtnsignup().setVisible(true); getBtnsignup().addActionListener(l); getBtnsignup().setActionCommand("Signup"); //Hb is an horizontal box and Vb is a vertical one getHb2().add(btnlogin); getHb2().add(btnsignup); getHb2().add(warninglabel); getHb2().setVisible(true); getVb().add(txtusername); getVb().add(txtpassword); getVb().add(txtconfirmer); getVb().add(hb2); getVb().setVisible(true); pnl.add(vb); pnl.setVisible(true);
这里是
ActionListener
public class Listener implements ActionListener{
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
String action = e.getActionCommand().toString();
switch(action){
case "login":
break;
case "Signup":
ConfirmerVisible(true, txtconfirmer);
conteneur.revalidate();
creationCompte();
break;
}
}
public void creationCompte() {
if(getTxtconfirmer().getText().length() >=6 && getTxtpassword().getText() == getTxtconfirmer().getText()) {
if(admin.isSelected()) {
Utilisateur u = new Utilisateur(txtusername.getText(), getTxtpassword().getText(), 1);
//Connexionuser.create(u);
//Connexionuser.login(u)
}
}
}
}
private void ConfirmerVisible(boolean b, Component c) {
c.setVisible(b);
}
}
我已经将JTextField可见性设置为false,并且当我单击按钮时,它应该立即显示,但是直到我调整窗口大小时才显示。我正在使用Swing构建登录/“注册”应用程序...
刷新GUI使用: