您好我正在尝试创建一个计算机游戏\程序,它使用的主要内容是来自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”。为什么不起作用?我应该使用另一种方法吗?请尽快回复!谢谢!
答案 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)
{
------------------
------------------
}
}