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);
}
}
程序运行界面:
问题:
为何向第一个TextField中输入内容后,能将第三个TextField的内容清空;而向第二个TextField中输入内容时,第三个TextField的内容不能清空,从我写代码来看,应该都是对的啊?
请求帮助!!