我是编程新手,正在尝试挥杆。我有一个用作默认菜单的 JFrame,还有一个出现在其中的 JPanel 来处理登录。成功登录后,JPanel 应该将登录信息发送到 JFrame,以便它知道当前登录的用户。
问题是,在 JButton 被单击时,在 JPanel 有机会检查凭据之前激活发送部分(其代码是 JFrame)。他们都使用相同的 actionlistener,所以我不知道如何控制顺序。
public class GUIFrame extends JFrame {
private DetailsPanel detailsPanel;
private String curUsername;
public GUIFrame(String title){
super(title);
detailsPanel = new DetailsPanel();
setLayout(new BorderLayout());
Container c = getContentPane();
c.add(detailsPanel, BorderLayout.EAST);
detailsPanel.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if (!(detailsPanel.getCurUsername() == "")){
randomToBeImplementedFunctionThatWillLogIn();
//TODO:
// The check here happens BEFORE the detailsPanel processes everything
// so the first time they create an account it won't log them in
// and every subsequent time the PREVIOUS login creds will be used.
}
}
});
public class DetailsPanel extends JPanel {
private HashMap<String, String> logInMap = new HashMap<String, String>();
private String curUsername = "";//the current logged in username
public String getCurUsername(){
return curUsername;
}
JTextField nameField;
JTextField passField;
public DetailsPanel(){
nameField = new JTextField(0);
passField = new JTextField(0);
}
成功登录后,DetailsPanel 应该将信息发送到 GUIFrame,然后 GUIFrame 登录。
相反,当发生 actionlistener 时,GUIFrame 会在 DetailsPanel 开始检查凭据并将其发送到 GUIFrame 之前尝试登录。
有没有办法让 DetailsPanel.addActionListener() 在 logIn.addActionListener() 之后出现?
哆啦的时光机
相关分类