小窗口事件出事了
import java.awt.*;import java.awt.event.*;
public class B_H_J extends Frame implements ActionListener
{
private TextField B_char,B_text;//一个文本行
private Button button_char;//一个按钮
public B_H_J()
{
super("迷途青年资料!");
this.setBounds(300,300,300,200);
this.setBackground(java.awt.Color.red);
this.setLayout(new java.awt.FlowLayout(FlowLayout.LEFT));
this.add(new Label("请输入姓名:"));
B_char=new TextField(" ",10);
this.add(B_char);
this.add(new Label("显示被调查者信息:"));
B_text=new TextField(" ",100);
this.add(B_text);
button_char=new Button("确定");
this.add(button_char);
button_char.addActionListener(this);
this.addWindowListener(new WinClose());
this.setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==button_char)
{
String str=B_char.getText(),r="一员虎将";//这段代码好像没有执行,觉得应该可以!但是....
if(B_char.getText()=="张飞")
B_text.setText("一员虎将");
if(str=="李广")
B_text.setText("百步穿杨!");
}
}
public static void main(String args[])
{
new B_H_J();
}
}
class WinClose implements WindowListener
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
public void windowOpened(WindowEvent e){}
public void windowActivated(WindowEvent e){}
public void windowDeactivated(WindowEvent e){}
public void windowClosed(WindowEvent e){}
public void windowIconified(WindowEvent e){}
public void windowDeiconified(WindowEvent e){}
}
程序可以运行,呵呵呵,但结果不对!!这是咋回事?想不明白!!请大家给指点一下!!!
搜索更多相关的解决方案:
窗口
----------------解决方案--------------------------------------------------------
if(B_char.getText()=="张飞")
B_text.setText("一员虎将");
if(str=="李广")
B_text.setText("百步穿杨!");
楼主,这个问题在不久前我就给人解答过了。比较字符串是否相等不能用==必须用equals.
在String类中,因为重写了equals方法,所以equals比较的是内容。而==号比较的是对象,str和"李广"是两个不同的对象,所以str=="李广"永远为false
----------------解决方案--------------------------------------------------------
回复 2楼 linjx0123
呵呵呵,我试过了,不行!! ----------------解决方案--------------------------------------------------------
回复 2楼 linjx0123
是这样,str.equals("张飞"),但是还没显示结果 ----------------解决方案--------------------------------------------------------
找到了----你前面那个TextField B_char 定义时多了个空格,所以就不相等了。
----------------解决方案--------------------------------------------------------
如果你想把空格去掉,可以这么做
if(B_char.getText().trim().equals("张飞"))
B_text.setText("一员虎将");
if(str.trim().equals("李广"))
B_text.setText("百步穿杨!");
----------------解决方案--------------------------------------------------------
同意楼上
----------------解决方案--------------------------------------------------------
呵呵呵,谢谢啊!!唉,粗心了!!!
----------------解决方案--------------------------------------------------------
回复 5楼 tdyso
想问你一下,这个空格是咋引起的啊 ----------------解决方案--------------------------------------------------------
B_char=new TextField(" ",10);
这个地方完全可以写作:B_char=new TextField(10);里面默认就存了一个空格了
----------------解决方案--------------------------------------------------------