我在netbeans中有一个jframe,有5个按钮,分别命名为按钮1、2、3、4和5。我试图使它这样,如果按这个顺序4,2,3,1按钮,它会显示一个对话框。我唯一的问题是让它认出按钮按了正确的顺序。
plicqrtu1#
不知道为什么要使用按钮。大多数人会使用 JPasswordTextField .如果你真的想用按钮。那你就得留个 StringBuilder . 每次按下按钮时,您都会将按钮的文本添加到生成器中。然后检查生成器的tostring()是否为密码。如果密码不正确,您将显示一个joptionpane,然后清除生成器,以便用户可以重新启动。
JPasswordTextField
StringBuilder
qc6wkl3g2#
如果这是我的项目,我会用 LinkedList<Integer> 或者 ArrayList<Integer> 保持整数,表示按钮被按下的顺序,如果最后5次按下与所需模式匹配,则会做出React。因此,每次按下按钮都会向列表中添加一个整数,然后会检查最后5个条目,如果它们与模式匹配,就对了!显示joptionpane。请注意,为了获得最佳帮助,您应该向我们展示您的尝试,我们可以帮助您改进它。
LinkedList<Integer>
ArrayList<Integer>
fjaof16o3#
干得好:生成一个全局字符串变量,我将其命名为code,并通过 "" .在每个相应的按钮上,添加代码(按钮1) code+="1;" 以及 check(); 创建方法 check ,其中包含以下函数:(如果你想试次数限制在5)
""
code+="1;"
check();
check
System.out.println("Numbers of try: "+code.length()); if(code.length()==5){ if(code.contains("32415")){ System.out.println("You made it!!"); }else{ code=""; } }
(如果你不想限制试一试的次数)
if(code.contains("32415")){ System.out.println("You made it!!"); }
去试试这个,它对我有用:)
3条答案
按热度按时间plicqrtu1#
不知道为什么要使用按钮。大多数人会使用
JPasswordTextField
.如果你真的想用按钮。那你就得留个
StringBuilder
. 每次按下按钮时,您都会将按钮的文本添加到生成器中。然后检查生成器的tostring()是否为密码。如果密码不正确,您将显示一个joptionpane,然后清除生成器,以便用户可以重新启动。
qc6wkl3g2#
如果这是我的项目,我会用
LinkedList<Integer>
或者ArrayList<Integer>
保持整数,表示按钮被按下的顺序,如果最后5次按下与所需模式匹配,则会做出React。因此,每次按下按钮都会向列表中添加一个整数,然后会检查最后5个条目,如果它们与模式匹配,就对了!显示joptionpane。请注意,为了获得最佳帮助,您应该向我们展示您的尝试,我们可以帮助您改进它。
fjaof16o3#
干得好:
生成一个全局字符串变量,我将其命名为code,并通过
""
.在每个相应的按钮上,添加代码(按钮1)
code+="1;"
以及check();
创建方法check
,其中包含以下函数:(如果你想试次数限制在5)
(如果你不想限制试一试的次数)
去试试这个,它对我有用:)