读书人

高手请入!有个小有关问题

发布时间: 2011-11-21 22:53:08 作者: rapoo

高手请入!有个小问题!
[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);
}
}
[/code]
程序运行界面:
[img]http://www2.freep.cn/Photo.php?url=photo36/0705241023097955.jpg[/img]
[color=red][b]问题:
为何向第一个TextField中输入内容后,能将第三个TextField的内容清空;而向第二个TextField中输入内容时,第三个TextField的内容不能清空?[/b][/color]

[解决办法]
hoursWorkedJTextField.addKeyListener(
new KeyAdapter()
{
public void KeyPressed(KeyEvent Event)
{
hoursWorkedJTextFieldKeyPressed(Event);
}
});
晕死!
看得我好辛苦,原来是中间那个KeyPressed(KeyEvent Event)的KeyPressed的K是小写的!

读书人网 >J2SE开发

热点推荐