这个问题在这里已经有答案了:
如何比较java中的字符串(23个答案)
两天前关门了。
我试图通过使用if else条件在代码中的文本框上添加验证
我在textbox上添加了focuslistener,当我从textbox中移除焦点时,它会检查条件
我还在chekbox旁边创建了一个标签,它将根据条件显示文本
如果文本框中的文本不等于“hi”,则应在文本框旁边的标签中打印“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)
{
}
}
但是当我运行代码时,它总是显示“hello”,即使我在文本框中写“hi”
请帮忙
1条答案
按热度按时间bmp9r5qi1#
使用
而不是
你也可以这样做
if(!t1.getText().equals("hi"))
但另一种方法更为空安全看一看https://www.javatpoint.com/string-comparison-in-java