这是我创建新用户的代码。如果我尝试在没有登录的情况下创建新用户,则会显示一条消息,请先登录。然后我将登录并尝试创建新用户。我的问题是显示的前一个文本区域仍然启用。我无法在我的文本框中输入数据。我尝试使用remove()函数但没有用。
if(e.getSource()==createButton){
//adminCard.remove(previlege);
if(UID==0||users.size()==0){
JPanel newUserCard = new JPanel(new FlowLayout());
name = new JPanel( new GridLayout(1, 4));
name.add(new JLabel(" "));
userName=new JTextField(20);
name.add(userName);
name.add(new JLabel(" Name"));
pword = new JPanel( new GridLayout(1, 4));
pword.add(new JLabel(" "));
pwd=new JTextField(20);
pword.add(pwd);
pword.add(new JLabel(" Password"));
loginNamePanel = new JPanel( new GridLayout(1, 4));
loginNamePanel.add(new JLabel(" "));
loginName=new JTextField(20);
loginNamePanel.add(loginName);
loginNamePanel.add(new JLabel("UserName"));
JPanel confirmpwd = new JPanel( new GridLayout(1, 3));
confirmpwd.add(new JLabel(" "));
confirmPassword=new JTextField(20);
confirmpwd.add(confirmPassword);
confirmpwd.add(new JLabel(" Confirm Password"));
newUserCard.add(name);
newUserCard.add( loginNamePanel);
newUserCard.add(pword);
newUserCard.add(confirmpwd);
newUserCard.add(submit);
displayUsers(users);
// JSplitPane sw=new JSplitPane
JSplitPane splitPane=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,true,newUserCard,userPane);
//splitPane.setDividerLocation(0.8);
splitPane.setOneTouchExpandable(true);
//splitPane.repaint();
userPane.setMaximumSize(new Dimension(10,20));
//adminCard.re
adminCard.add(splitPane);
adminCard.validate();
submit.addActionListener(this);
}
if(loginState==false && users.size()!=0){
JTextArea previlege=new JTextArea("Please login in order to create new users");
adminCard.add(previlege);
adminCard.validate();
}
答案 0 :(得分:0)
当您致电repaint();
时,请尝试拨打validate();
。只要您执行remove();
或removeAll();
,就应该同时致电。{/ p>
adminCard.validate();
adminCard.repaint();