| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1026 人关注过本帖
标题:小窗口事件出事了
只看楼主 加入收藏
MyStar
Rank: 1
等 级:新手上路
帖 子:75
专家分:9
注 册:2010-3-30
结帖率:93.75%
收藏
已结贴  问题点数:20 回复次数:10 
小窗口事件出事了
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){}
}
程序可以运行,呵呵呵,但结果不对!!这是咋回事?想不明白!!请大家给指点一下!!!
搜索更多相关主题的帖子: 窗口 
2010-05-13 17:43
linjx0123
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:14
帖 子:279
专家分:1362
注 册:2006-4-7
收藏
得分:0 
            if(B_char.getText()=="张飞")
               B_text.setText("一员虎将");
            if(str=="李广")
               B_text.setText("百步穿杨!");

楼主,这个问题在不久前我就给人解答过了。比较字符串是否相等不能用==必须用equals.
在String类中,因为重写了equals方法,所以equals比较的是内容。而==号比较的是对象,str和"李广"是两个不同的对象,所以str=="李广"永远为false
2010-05-13 21:07
MyStar
Rank: 1
等 级:新手上路
帖 子:75
专家分:9
注 册:2010-3-30
收藏
得分:0 
回复 2楼 linjx0123
呵呵呵,我试过了,不行!!
2010-05-13 21:24
MyStar
Rank: 1
等 级:新手上路
帖 子:75
专家分:9
注 册:2010-3-30
收藏
得分:0 
回复 2楼 linjx0123
是这样,str.equals("张飞"),但是还没显示结果
2010-05-13 21:30
tdyso
Rank: 2
等 级:论坛游民
帖 子:30
专家分:22
注 册:2010-3-23
收藏
得分:10 
找到了----你前面那个TextField B_char 定义时多了个空格,所以就不相等了。
2010-05-13 21:53
linjx0123
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:14
帖 子:279
专家分:1362
注 册:2006-4-7
收藏
得分:10 
如果你想把空格去掉,可以这么做
            if(B_char.getText().trim().equals("张飞"))
               B_text.setText("一员虎将");
            if(str.trim().equals("李广"))
               B_text.setText("百步穿杨!");
2010-05-14 16:00
baifenghan
Rank: 8Rank: 8
等 级:贵宾
威 望:10
帖 子:258
专家分:952
注 册:2006-3-17
收藏
得分:0 
同意楼上
2010-05-14 20:18
MyStar
Rank: 1
等 级:新手上路
帖 子:75
专家分:9
注 册:2010-3-30
收藏
得分:0 
呵呵呵,谢谢啊!!唉,粗心了!!!
2010-05-14 20:39
MyStar
Rank: 1
等 级:新手上路
帖 子:75
专家分:9
注 册:2010-3-30
收藏
得分:0 
回复 5楼 tdyso
想问你一下,这个空格是咋引起的啊
2010-05-15 11:32
tdyso
Rank: 2
等 级:论坛游民
帖 子:30
专家分:22
注 册:2010-3-23
收藏
得分:0 
B_char=new TextField(" ",10);
这个地方完全可以写作:B_char=new TextField(10);里面默认就存了一个空格了
2010-05-15 12:55
快速回复:小窗口事件出事了
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017480 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved