很奇怪的一个问题import java.awt.event.*;
import java.awt.*;
import java.io.*;public class bb implements ActionListener
{
static TextField r = new TextField("123");
public static void main(String args[])
{
Button b = new Button("0");
Frame f = new Frame();
f.setLayout(new BorderLayout());
f.add("South",b);
f.add("North",r);
b.addActionListener(new bb());
f.setSize(200,200);
//////////////////////////////////////////////////////////////////////////////////////////
if (r.getText() == "123") System.out.println("="+r.getText());
else System.out.println("!="+r.getText());
f.setVisible(true);//为什么此处加上该语句后,r.getText()取得字符不等于"123"? TextField r中的值变化了?
//但是通过print将TextField r中的值打印出来。并没有发生任何变化。下面TextField r为什么会变化了?
if (r.getText() == "123") System.out.println("="+r.getText());
else System.out.println("!="+r.getText());
r.setEditable(false);
}
public void actionPerformed(ActionEvent e)
{
if(e.getActionCommand()=="0")
{
r.setText("123");//此处再次将TextField r中的值 改变成“123”,为什么下面的 判断语句(r.getText() == "123")还是不成立?
if (r.getText() == "123") System.out.println("="+r.getText());
else System.out.println("!="+r.getText());
}
}
}
import java.awt.*;
import java.io.*;public class bb implements ActionListener
{
static TextField r = new TextField("123");
public static void main(String args[])
{
Button b = new Button("0");
Frame f = new Frame();
f.setLayout(new BorderLayout());
f.add("South",b);
f.add("North",r);
b.addActionListener(new bb());
f.setSize(200,200);
//////////////////////////////////////////////////////////////////////////////////////////
if (r.getText() == "123") System.out.println("="+r.getText());
else System.out.println("!="+r.getText());
f.setVisible(true);//为什么此处加上该语句后,r.getText()取得字符不等于"123"? TextField r中的值变化了?
//但是通过print将TextField r中的值打印出来。并没有发生任何变化。下面TextField r为什么会变化了?
if (r.getText() == "123") System.out.println("="+r.getText());
else System.out.println("!="+r.getText());
r.setEditable(false);
}
public void actionPerformed(ActionEvent e)
{
if(e.getActionCommand()=="0")
{
r.setText("123");//此处再次将TextField r中的值 改变成“123”,为什么下面的 判断语句(r.getText() == "123")还是不成立?
if (r.getText() == "123") System.out.println("="+r.getText());
else System.out.println("!="+r.getText());
}
}
}
程序没有问题,字符串的比较应该使用equals
r.getText().equals("123")
麻烦各位了。
再次感谢!