Java 如何等待其中一个按钮被单击?
我正在做一个项目,在某一点上遇到了困难。我正在使用Java Swing,这就是问题所在: 当用户单击readMore按钮时,我正在创建VerifyFF类的实例。现在,这个类创建了一个框架,它有一个输入字段和两个按钮,即cancel和continue。如果用户按“取消”,则帧将被处理,无需执行任何操作。如果他在文本字段中输入正确的密码,然后按cont,我需要检查密码是否正确。为此,我使用了一个名为verified的布尔变量 当输入的密码正确时,verified的值设置为true,否则不会发生任何情况。用户收到错误密码的提示,他可以再次输入正确的密码,也可以按“取消” 现在,在我创建VerifyFF类实例的类中,我想检查输入的密码是否正确,因此我要检查变量boolean的值(也是静态的)。问题是,当VerifyFF的构造函数运行时,没有任何东西会停止执行并等待用户输入内容。这两个检查都是在函数内部完成的Java 如何等待其中一个按钮被单击?,java,swing,wait,actionlistener,Java,Swing,Wait,Actionlistener,我正在做一个项目,在某一点上遇到了困难。我正在使用Java Swing,这就是问题所在: 当用户单击readMore按钮时,我正在创建VerifyFF类的实例。现在,这个类创建了一个框架,它有一个输入字段和两个按钮,即cancel和continue。如果用户按“取消”,则帧将被处理,无需执行任何操作。如果他在文本字段中输入正确的密码,然后按cont,我需要检查密码是否正确。为此,我使用了一个名为verified的布尔变量 当输入的密码正确时,verified的值设置为true,否则不会发生任何情
JButton.addActionListener(new ActionListener()
{
};
实例化变量的类中的代码是:
VerifyFF vff=新的VerifyFF()
如果(vff.已验证)
readMore()
每当我运行此代码时,它都不会等待查看是否放置了任何按钮。我想知道如何才能等到按下某个按钮。您的类应该有一个validatePassword方法,单击continue按钮即可调用该方法
class VerifyFF implements ActionListener {
private static final String ACTION_CONTINUE = "CONTINUE";
private JButton continueBtn = null;
private static boolean valid = false;
public VerifyFF() {
this.continueBtn = new JButton("Continue");
this.continueBtn.setActionCommand(VerifyFF.ACTION_CONTINUE);
this.continueBtn.addActionListener(this);
}
public static boolean validatePassword() {
//Validates the password field...
}
void actionPerformed(ActionEvent e) {
if (e.getActionCommand().equals(VerifyFF.ACTION_CONTINUE)) {
VerifyFF.valid = VerifyFF.validatePassword();
}
}
}
这样,按下Continue按钮即可调用validate方法。然后,您可以根据布尔值“valid”执行任何需要的操作。您的类应该有一个validatePassword方法,单击continue按钮即可调用该方法
class VerifyFF implements ActionListener {
private static final String ACTION_CONTINUE = "CONTINUE";
private JButton continueBtn = null;
private static boolean valid = false;
public VerifyFF() {
this.continueBtn = new JButton("Continue");
this.continueBtn.setActionCommand(VerifyFF.ACTION_CONTINUE);
this.continueBtn.addActionListener(this);
}
public static boolean validatePassword() {
//Validates the password field...
}
void actionPerformed(ActionEvent e) {
if (e.getActionCommand().equals(VerifyFF.ACTION_CONTINUE)) {
VerifyFF.valid = VerifyFF.validatePassword();
}
}
}
这样,按下Continue按钮即可调用validate方法。然后,您可以根据布尔值“valid”执行任何需要的操作。我不确定这个问题。但也许你应该重新考虑你的实施。在构造函数中,只进行第一次显示,然后在用户单击更多且密码正确时提供更多的函数。 您真的不需要停止构造构造函数,这听起来很糟糕
祝你好运,波罗。我不确定这个问题。但也许你应该重新考虑你的实施。在构造函数中,只进行第一次显示,然后在用户单击更多且密码正确时提供更多的函数。 您真的不需要停止构造构造函数,这听起来很糟糕
祝你好运,波罗。你不必等到有人按下按钮。动一下你的手
if(vvf.verified) readMode();
进入动作监听器中,点击“继续”按钮。您不必等到有人按下按钮。动一下你的手
if(vvf.verified) readMode();
进入您的“继续”按钮的操作侦听器。非常感谢!我不知道我是怎么跳过的。非常感谢!我不知道我是怎么跳过的。