从JTextField读取特定文本

时间:2013-09-24 23:17:39

标签: java swing actionlistener jtextfield

您好我正在尝试创建一个计算机游戏\程序,它使用的主要内容是来自JTextField中的用户命令。所以我已经设置了一个名为“问题”的基本文本字段 (JTextField question = new JTextField(15);)在JFrame和OK按钮中输入文本。接下来是字符串“答案”。这是:      String answer = question.getText()。toUpperCase();

这是该字段的设置方式。 Net是3 if语句,如果没有输入文本,如果它不是正确的单词,当然是正确的答案,则会给出错误。它们如下:

Public class ButtonListener extends ActionListener
{
     publix void actionPerformed(ActionEvent e)
     {
          if(e.getSource() == buttonOK)
          {
           String answer = question.getText().toUpperCase();

          if(answer.length() == 0)
          {
               JOptionPane.showMessageDialog(
                    Window.this,
                    "ERROR: NO INPUT",
                    "ERROR",
                    JOptionPane.INFORMATION_MESSAGE);
          }

          if(answer == "XENIX")
          {
               JOptionPane.showMessageDialog(
                    Window.this,
                    "Welcome, Sir",
                    "Greetings",
                    JOptionPane.INFORMATION_MESSAGE);
          }

          if(answer != "XENIX" && answer.length > 0)
          {
               JOptionPane.showMessageDialog(
                    Window.this,
                    "ERROR: INCORECT PASSWORD",
                    "ERROR",
                    JOptionPane.INFORMATION_MESSAGE);
          }

这是if语句在输入文本和按下ok按钮时的反应。一切正常,但当我输入“Xenix”时,它会显示“ERROR:INCORRECT PASSWORD”。 “欢迎,先生”的消息从未显示,即使使用打印方法,它显示它显然从答案中得到了“XENIX”。为什么不起作用?我应该使用另一种方法吗?请尽快回复!谢谢!

1 个答案:

答案 0 :(得分:3)

if(question.getText() !=null && !question.getText().isEmpty())
{
    String answer = question.getText().toUpperCase();

    if(answer.length() == 0)
    {
        ------------------
        ------------------
    }   

    if(answer.equals("XENIX"))
    {
        ------------------
        ------------------
    }

    if((!answer.equals("XENIX")) && answer.length > 0)
    {
        ------------------
        ------------------
    }
}