Java TextField getText()给我一个我无法比较的字符串

时间:2014-08-05 10:04:57

标签: java string swing listener textfield

我想控制一个字符串形式我的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总是假的

怎么了?!

2 个答案:

答案 0 :(得分:3)

要比较字符串,您必须使用.equals(String)函数。

String是一个Object,因此==会比较两个字符串的对象引用。

但你想要的是比较字符串值。

你应该使用

if ( "".equals(get) ) System.out.println("Is not empty");

答案 1 :(得分:1)

请尝试:

if (yourJTextField.getText().equals(""))
{
 ...
}