[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]
程序运行界面:问题:
为何向第一个TextField中输入内容后,能将第三个TextField的内容清空;而向第二个TextField中输入内容时,第三个TextField的内容不能清空?
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]
程序运行界面:问题:
为何向第一个TextField中输入内容后,能将第三个TextField的内容清空;而向第二个TextField中输入内容时,第三个TextField的内容不能清空?
解决方案 »
- 单例多线程合用的问题,高手来点拨下小弟
- 怎么判断Clipboard里面的文件格式,知道的来帮下忙呀
- my-proxy.com 捉取代理
- Java中如何返回一个字符串数组?&JTextField[][]问题!
- 介绍一个有许多java示例,如AWT,SWING等的网站http://www.codeguru.com/java/
- 求救!!笔记本死机问题
- 一段简短的关于线程同步的代码,大家看看有没有问题
- 如何限定键盘输入
- 高分火速求解,请在线朋友回答:java自定义类怎样生成实例数组?( className[] N=new className[X];怎么不行?)
- 求助!(因为刚入门,呵呵)
- 如何接收并获取到别人发送到某个端口信息
- [求助]这个程序有点问题(关于事件处理|含代码)
new KeyAdapter()
{
public void KeyPressed(KeyEvent Event)
{
hoursWorkedJTextFieldKeyPressed(Event);
}
});
晕死!
看得我好辛苦,原来是中间那个KeyPressed(KeyEvent Event)的KeyPressed的K是小写的!