当前位置: 代码迷 >> Java相关 >> 小窗口事件出事了
  详细解决方案

小窗口事件出事了

热度:129   发布时间:2010-05-13 17:43:51.0
小窗口事件出事了
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);里面默认就存了一个空格了

----------------解决方案--------------------------------------------------------
  相关解决方案