我想控制一个字符串形式我的textfield是否为空。这里有一个简单的Swing接口代码:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Try{
public static void main(String[] args) {
JFrame frame = new JFrame();
JPanel panel = new JPanel();
panel.setLayout(null);
JTextField text = new JTextField();
JButton button = new JButton("ok");
button.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
String get = "";
get = text.getText();
if ( get == "" ) System.out.println("Is not empty");
else System.out.println("Is empty");
}
});
panel.add(text);
text.setBounds(0, 0, 50, 20);
panel.add(button);
button.setBounds(60, 0, 50, 20);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(100,100);
frame.getContentPane().add(panel);
frame.setVisible(true);
}
}
但是如果你在texfield中填写一些内容然后按下ok按钮,那么if总是在“空”...所以,if总是假的
怎么了?!
答案 0 :(得分:3)
要比较字符串,您必须使用.equals(String)
函数。
String是一个Object,因此==
会比较两个字符串的对象引用。
但你想要的是比较字符串值。
你应该使用
if ( "".equals(get) ) System.out.println("Is not empty");
答案 1 :(得分:1)
请尝试:
if (yourJTextField.getText().equals(""))
{
...
}