| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 414 人关注过本帖
标题:还是以前的那个代码,不过是事件响应的问题。
只看楼主 加入收藏
夕痕
Rank: 1
来 自:临界
等 级:新手上路
帖 子:40
专家分:3
注 册:2013-4-22
结帖率:90%
收藏
已结贴  问题点数:15 回复次数:4 
还是以前的那个代码,不过是事件响应的问题。
import java.awt.Checkbox;
import java.awt.CheckboxGroup;
import java.awt.Color;
import java.awt.Container;
import java.awt.TextArea;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JRadioButton;
import javax.swing.JTextField;
public class Login1 extends JFrame implements ActionListener
{

    String strKey;
    boolean flag=true;
   
    JLabel lYourInform,lLogin, lKey;
    JTextField textLogin;
    JPasswordField textKey;
   
    Checkbox box1,box2;
    CheckboxGroup boxgroup;
   
    JRadioButton r1,r2;
   
    JLabel lSex;
    JTextField textName;
   
    JLabel lBirthday;
    JComboBox y,m;
   
//    JLabel aihao;
   
    TextArea areaInform;
    JButton bEnter;
   
    String year[] = { "1990","1991","1992","1993","1994","1995","1996","1997","1998","1999" };
    String month[] = { "1","2","3","4","5","6","7","8","9","10","11","12" };
   

    public Login1()
    {
        Container c= getContentPane();
        c.setLayout(new BoxLayout(c,BoxLayout.Y_AXIS));
   
        JPanel panel1 = new JPanel();        //panel1
        lLogin = new JLabel("账号:");
        lLogin.setForeground(Color.red);
        textLogin = new JTextField(8);
        
        panel1.add(lLogin);
        panel1.add(textLogin);
        c.add(panel1);
        
        JPanel panel2 = new JPanel();        //panel2
        lKey = new JLabel("密码:");
        lKey.setForeground(Color.red);
        textKey = new JPasswordField(8);
        panel2.add(lKey);
        textKey.setEchoChar('*');
        panel2.add(textKey);
        c.add(panel2);
   
        
        JPanel panel3 = new JPanel();        //panel3
        
        lSex = new JLabel("性别:");
        lSex.setForeground(Color.green);
        textName = new JTextField("",3);
        r1 = new JRadioButton( "男" ,true);
        r2 = new JRadioButton( "女" , false);
        boxgroup = new CheckboxGroup();
        box1 = new Checkbox("男",boxgroup,true);
        box2 = new Checkbox("女",boxgroup,false);
        panel3.add(lSex);
        panel3.add(r1);
        panel3.add(r2);
        c.add(panel3);
   
        
        JPanel panel4 = new JPanel();        //panel4
        
        lBirthday = new JLabel("出生日期:");
        lBirthday.setForeground(Color.black);
        y = new JComboBox(year);
    //    y.setMaximumRowCount( 4 );
   
        y.setForeground(Color.orange);
        m = new JComboBox(month);
   
        m.setForeground(Color.blue);
    //    y.addItemListener(this);
    //    m.addItemListener(this);
        panel4.add(lBirthday);
        panel4.add(y);
        panel4.add(m);
        c.add(panel4);
        
        
        
   
        
        JPanel bPanel = new JPanel();    //按钮面板
        bEnter = new JButton("确定");
        bEnter.addActionListener(this);
        bPanel.add(bEnter);
        c.add(bPanel);            //按钮面板结束
        
        
        areaInform = new TextArea("",6,25);            //文本框
        add(areaInform);
        
        
        setSize(400,300);
        setLocation(450,200);
        setVisible(true);   
        setBackground(Color.darkGray);
        
        
        addWindowListener(new WindowAdapter()
        {
             public void windowClosing( WindowEvent e )
             {  
                 System.exit( 0 );
             }
        } );   
    }   
   

   
    public void actionPerformed(ActionEvent a)
    {
        areaInform.setText("");
        String e;
        if(r1.isSelected())
            e = r1.getText();
        else
            e = r2.getText();
        if(a.getSource()==bEnter)
        {
            if(flag==true)
            {
                flag = false;
                if(textLogin.getText().isEmpty())
                    JOptionPane.showMessageDialog(null, "账号不能为空");
                else if(textKey.getText().isEmpty())
                    JOptionPane.showMessageDialog(null, "密码不能为空");
                else
                    areaInform.setText("账号为:"+textLogin.getText()+"\n"+"密码为:"+textKey.getText()+"\n"+"性别:"+e+"\n"+"出生日期:"+y.getSelectedItem()+"年\t"+m.getSelectedItem()+"月\n");
                textLogin.setText("");        //初始化账号框
                textKey.setText("");        //初始化密码框
            }
            
        }
        
    }

   
    public static void main(String[] arg)
    {
        
        Login1 swing =new Login1 ();
        //swing.setBackground(Color.);
    }
}

点确认后,只能响应第一次事件,如果还有的话,就不在响应了,文本框一片空白了。
@java小蚂蚁
搜索更多相关主题的帖子: import 
2013-10-23 13:05
ghjsmzy
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:187
专家分:573
注 册:2009-6-17
收藏
得分:15 
在public void actionPerformed(ActionEvent a)方法中你将flag = false;,所以再点击就没有反应了
2013-10-23 14:43
夕痕
Rank: 1
来 自:临界
等 级:新手上路
帖 子:40
专家分:3
注 册:2013-4-22
收藏
得分:0 
回复 2楼 ghjsmzy
哦,谢谢啊,这句是直接搬书上的,所以不知道这个。

爱的本质是赋予一个人伤害自己的权利。
2013-10-23 16:40
经哥
Rank: 3Rank: 3
来 自:代码空间
等 级:论坛游侠
威 望:1
帖 子:289
专家分:124
注 册:2012-9-8
收藏
得分:0 
写点注释你会死啊

我只是个演员,还是业余的!!
2013-10-30 20:28
ghjsmzy
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:187
专家分:573
注 册:2009-6-17
收藏
得分:0 
如果是搬书上的,这应该不是全部代码,应该会在某个地方有对flag标记变量的控制。
你搞全了也许这就不是个问题了。
还有,虽然书上没有注释但是你自己加上的好,这代码少的时候你还记得,一旦代码量大了,你就会出现写后面忘前面的情况
2013-10-31 13:55
快速回复:还是以前的那个代码,不过是事件响应的问题。
数据加载中...
 
   



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

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