【问题标题】:Java Buttons Pressed in Specific Order按特定顺序按下的 Java 按钮
【发布时间】:2013-06-06 01:58:02
【问题描述】:

我在 netbeans 中有一个带有 5 个按钮的 Jframe,分别命名为按钮 1、2、3、4 和 5。如果按 4、2、3、1 的顺序按下按钮,我正在尝试这样做,它将显示一个对话框。我唯一的问题是让它识别按钮已按正确的顺序按下。

【问题讨论】:

  • 你能不能等一下,我知道怎么做,但我得先试试。

标签: java swing button passwords combinations


【解决方案1】:

如果这是我的项目,我会使用 LinkedList<Integer>ArrayList<Integer> 来保存表示已按下按钮的整数以及按什么顺序,然后如果最后 5 次按下与所需模式匹配,则会做出反应.所以每次按下按钮都会在列表中添加一个整数,然后检查最后 5 个条目,如果它们匹配模式,bingo!显示 JOptionPane。

请注意,为了获得最佳帮助,您应该向我们展示您的尝试,我们可以帮助您完善它。

【讨论】:

  • 感谢您的帮助!我会尝试两种方法!
  • @user2457916:camickr 的建议和我的在概念上都相似——你使用某种结构来保存按下按钮编号的值,对我来说是一个集合,而对 camickr 来说是一个 StringBuilder。如果正确实施,两者都可以工作。我对此有 1+'d camickr 的回答。
【解决方案2】:

不确定您为什么要为此使用按钮。大多数人会使用JPasswordTextField

如果你真的想使用按钮。然后你需要保留StringBuilder。每次按下按钮时,您都会将按钮的文本添加到构建器。然后你会检查构建器的 toString() 是否是密码。

如果密码不正确,您将显示一个 JOptionPane,然后清除构建器,以便用户重新开始。

【讨论】:

  • 感谢您的帮助!我试试看!
【解决方案3】:

给你:

  1. 制作一个全局String变量,我将其命名为code,并将其值初始化为""
  2. 在每个对应的按钮上,添加代码(用于按钮 1)code+="1;"check();
  3. 创建一个方法check,其中包含这些函数:

(如果您希望尝试次数限制为 5)

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!!");
}

试试这个,它对我有用:)

【讨论】:

  • 我暂时无法尝试,但看起来它肯定会起作用,如果可以,我会再次发表评论。感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-05-07
  • 2019-09-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多