当前位置: 首页 > 知识库问答 >
问题:

如果else语句给出了错误的输出[duplicate]

常俊侠
2023-03-14

我正在尝试通过使用if else条件在我的代码中的textbox上添加验证

我在textbox上添加了focusListener,当我从textbox中删除焦点时,它将检查条件
我还在chekbox旁边创建了一个标签,它将根据条件显示文本

如果textbox中的文本不等于“Hi”,则应在textbox旁边的标签中打印“Hello

否则应打印“再见”

import java.awt.*;  
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.FocusAdapter;
import java.awt.event.FocusEvent;
import javax.swing.*;

public class regframe extends JFrame implements ActionListener
{
    
    private static final long serialVersionUID = 1L;
    JTextField t1,t2;
    JLabel l1,l2,l3,l4;
    JButton b;

    regframe()
    {   
        getContentPane().setBackground(Color.BLACK);
        l1=new JLabel("Enter First Num:");
        l1.setBounds(50,50,150,20);
        l1.setForeground(Color.WHITE);
        l1.setFont(new Font("Verdana",Font.BOLD,12));
        add(l1);

        t1=new JTextField();
        t1.setBounds(180,50,100,20);
        t1.setBackground(Color.BLACK);
        t1.setForeground(Color.WHITE);
        t1.setBorder(BorderFactory.createMatteBorder(0, 0, 1, 0,Color.YELLOW));
        t1.setCaretColor(Color.CYAN);
        t1.setFont(new Font("Verdana",Font.BOLD,12));
        t1.addActionListener(this);
        add(t1);
        
        l3=new JLabel();
        l3.setBounds(290,50,150,20);
        l3.setForeground(Color.CYAN);
        l3.setOpaque(false);
        l3.setFont(new Font("Verdana",Font.BOLD,10));
        add(l3);

        t1.addFocusListener(new FocusAdapter() 
        {
            public void focusLost(FocusEvent e)
            {
                if(t1.getText()!="hi")
                {
                    l3.setText("hello");
                }
                else
                {
                    l3.setText("bye");
                }
            }
        });
        

        l2=new JLabel("Enter Second Num:");
        l2.setBounds(50,80,150,20);
        l2.setForeground(Color.WHITE);
        l2.setFont(new Font("Verdana",Font.BOLD,12));
        add(l2);        

        t2=new JTextField();
        t2.setBounds(180,80,100,20);
        t2.setBackground(Color.BLACK);
        t2.setForeground(Color.WHITE);
        t2.setBorder(BorderFactory.createMatteBorder(0, 0, 1, 0,Color.YELLOW));
        t2.setCaretColor(Color.CYAN);
        t2.setFont(new Font("Verdana",Font.BOLD,12));
        add(t2);
                
        b=new JButton("Submit");
        b.setBounds(100,120,100,20);
        b.setBackground(Color.CYAN);
            b.setForeground(Color.BLACK);
        add(b);

        setLocation(300,200);
        setSize(700,250);
        setLayout(null);
        setTitle("Registration");
        setVisible(true);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        
    }
    
    public static void main(String args[])
    {
        new regframe();
    }

    public void actionPerformed(ActionEvent arg0) 
    {
        
        
    }
}

请帮忙

共有1个答案

太叔小云
2023-03-14

使用

if(!"hi".equals(t1.getText()) 

而不是

if(t1.getText()!="hi")

您还可以执行if(!t1.getText().equals(“hi”)),但另一个方法更适合空

查看https://www.javatpoint.com/string-comparis-in-

 类似资料:
  • 最初,当今天是星期三或星期四时,我想把地方设置为“A”,否则设置为“B”。但是设计的代码一直返回“A”,尽管今天是“星期六”(14/10/2017)。我怎么能修好它?

  • 我对if else语句有些问题,请支持

  • 我在家庭作业中使用Eclipse,我真的很挣扎。目标是编写一个工资单程序,让用户输入他们的姓名、工作时间、工资率、联邦和州预扣税,然后输出他们预扣金额的计算信息以及他们的净工资。 我使用了我熟悉的println语句来显示输出,但老师希望我们使用函数,我根本无法让它工作。如果我使用println语句,所有的值都会填充,但由于某种原因,我无法让printf执行相同的操作。我错过了什么?如果我使用pri

  • 我得到了3个不同的错误:标识符预期,意外的令牌,未知的类:'score'。这些错误在第57-69行。 这个代码的重点是检查一个检查列表是否被检查,如果是,加1得分。它根据得分将输出文本更改为不同的字符串。 ^^XML代码^^

  • 我在过去(90年代中期)使用过ANTLR,并决定重新使用它,因为我想为赋值文件中的注释以及Unicode关键字和值提供支持。 我的简单测试文件再次证明,即使使用好的工具,编写正确的语法也是一个困难的问题。我正在使用VS2012的ANTLR语言支持插件,并用C#进行开发。所以,我对Eclipse/Java保留很满意,但是C#插件和ANTLR Nuget包(运行时和代码生成器)完全按照广告所说的那样工

  • 问题内容: 当我使用 我得到错误 错误1054:where子句中的未知列’U687678601’ 但是当我键入 它工作正常。 我正在使用mysql。 我知道这是一个新手问题,但是谁能解释为什么会这样,我可以通过编程方式添加引号吗?通过代码添加引号是个好主意吗? 谢谢 问题答案: 当我们向SQL查询提供字符串/ varchar类型时,必须使用’‘指定它。对于非varchar类型,则无需提供“。这就是