首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

[求助]这个程序有点有关问题(关于事件处理|含代码)

2011-12-07 
[求助]这个程序有点问题(关于事件处理|含代码)[code]importjavax.swing.*importjava.awt.*importjava.te

[求助]这个程序有点问题(关于事件处理|含代码)
[code]
import   javax.swing.*;
import   java.awt.*;
import   java.text.*;
import   java.awt.event.*;
public   class   WageCalculator   extends   JFrame
{
    private   JLabel   hourlyWageJLabel;
    private   JTextField   hourlyWageJTextField;
   
    private   JLabel   hoursWorkedJLabel;
    private   JTextField   hoursWorkedJTextField;
   
    private   JLabel   grossWagesJLabel;
    private   JTextField   grossWagesJTextField;
   
    private   JButton   calculateJButton;
   
    double   hourlyWage;
    double   hoursWorked;
    double   wages;
    final   double   HOUR_LIMIT=40.0;
    DecimalFormat   dollars;
   
    public   WageCalculator()
    {
        createUserInterface();
    }
    public   void   createUserInterface()
    {
        Container   contentPane=this.getContentPane();
        contentPane.setLayout(null);
       
        hourlyWageJLabel=new   JLabel();
        hourlyWageJLabel.setBounds(16,16,90,21);
        hourlyWageJLabel.setText( "Hourly   wage ");
        contentPane.add(hourlyWageJLabel);
       
        hourlyWageJTextField=new   JTextField();
        hourlyWageJTextField.setBounds(115,16,90,21);
        hourlyWageJTextField.setHorizontalAlignment(JTextField.RIGHT);
        contentPane.add(hourlyWageJTextField);
        hourlyWageJTextField.addKeyListener(  
            new   KeyAdapter()
            {
                public   void   keyPressed(KeyEvent   Event)
                {
                    hourlyWageJTextFieldKeyPressed(Event);
                }
            });
       
        hoursWorkedJLabel=new   JLabel();
        hoursWorkedJLabel.setBounds(16,57,90,21);
        hoursWorkedJLabel.setText( "Hours   worked ");
        contentPane.add(hoursWorkedJLabel);
       
        hoursWorkedJTextField=new   JTextField();
        hoursWorkedJTextField.setBounds(115,57,90,21);
        hoursWorkedJTextField.setHorizontalAlignment(JTextField.RIGHT);
        contentPane.add(hoursWorkedJTextField);
        hoursWorkedJTextField.addKeyListener(
            new   KeyAdapter()
            {
                public   void   KeyPressed(KeyEvent   Event)


                {
                    hoursWorkedJTextFieldKeyPressed(Event);
                }
            });
       
        grossWagesJLabel=new   JLabel();
        grossWagesJLabel.setBounds(16,97,90,21);
        grossWagesJLabel.setText( "Gross   wages ");
        contentPane.add(grossWagesJLabel);
       
        grossWagesJTextField=new   JTextField();
        grossWagesJTextField.setBounds(115,97,90,21);
        grossWagesJTextField.setHorizontalAlignment(JTextField.RIGHT);
        grossWagesJTextField.setEditable(false);
        contentPane.add(grossWagesJTextField);
       
        calculateJButton=new   JButton();
        calculateJButton.setBounds(115,135,90,21);
        calculateJButton.setText( "Calculate ");
        contentPane.add(calculateJButton);
        calculateJButton.addActionListener(
            new   ActionListener()
            {
                public   void   actionPerformed(ActionEvent   Event)
                {
                    calculateJButtonActionPerformed(Event);
                }
              });
       
        setTitle( "Wage   Calculator ");
        setSize(230,200);
        setLocation(150,200);
        setVisible(true);
    }
    private   void   calculateJButtonActionPerformed(ActionEvent   e)
    {
        hourlyWage=Double.parseDouble(hourlyWageJTextField.getText());
        hoursWorked=Double.parseDouble(hoursWorkedJTextField.getText());
        if(hoursWorked <=HOUR_LIMIT)
        {
            wages=hourlyWage*hoursWorked;
        }
        else
        {
            wages=hourlyWage*HOUR_LIMIT;
            wages+=(hoursWorked-HOUR_LIMIT)*hourlyWage*1.5;
        }
        dollars=new   DecimalFormat( "$0.00 ");
        grossWagesJTextField.setText(dollars.format(wages));
    }
   
    private   void   hourlyWageJTextFieldKeyPressed(KeyEvent   e)
    {
        grossWagesJTextField.setText( " ");
    }
   
    private   void   hoursWorkedJTextFieldKeyPressed(KeyEvent   e)
    {
        grossWagesJTextField.setText( " ");


    }
   
    public   static   void   main(String   args[])
    {
        WageCalculator   application=new   WageCalculator();
        application.setDefaultCloseOperation(EXIT_ON_CLOSE);
    }
}
程序运行界面:(这个论坛不能传图片,我只好将图片传于其它地方,做个链接)
http://www2.freep.cn/Photo.php?url=photo36/0705241023097955.jpg
问题:
    为何向第一个TextField中输入内容后,能将第三个TextField的内容清空;而向第二个TextField中输入内容时,第三个TextField的内容不能清空?

[解决办法]
改成这样就可以了,keyPressed方法开头k是小写
hoursWorkedJTextField.addKeyListener(
new KeyAdapter()
{
public void keyPressed(KeyEvent Event)
{
hoursWorkedJTextFieldKeyPressed(Event);
}
});

[解决办法]
不是KeyEvent里面的K,而是keyPressed里面的k

热点排行
Bad Request.