1、设置窗口的标题为:商品总价计算
2、用户输入客户姓名、商品单价、商品数量后,点击“计算”按钮,把商品总价显示在文本框中。
3、如果用户没有输入客户姓名,弹出消息提示“客户姓名不能为空”。
4、如果用户在商品单价和商品数量文本框中,输入的不是数字,做异常处理,弹出消息提示“输入数据有误”。
界面代码:
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class ExamGUI extends JFrame{
JTextField txtName; //txtName用于输入用户姓名
JTextField txtPrice; //txtPrice用于输入单价
JTextField txtNumber; //txtNumber用于输入数量
JTextField txtTotal; //txtTotal用于显示计算结果
JButton btnCal,btnSave; //btnCal用于计算总价,btnSave用于保存
public static void main(String[] args) {
new ExamGUI();
}
public ExamGUI()
{ this.setTitle("商品总价计算");
this.setSize(400, 300);
this.setResizable(false); //设置窗体不能改变大小
this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
this.setLayout(new GridLayout(5,1));
JPanel p1 = new JPanel();
JLabel lblName = new JLabel("客户姓名:");
txtName = new JTextField(10);
p1.add(lblName);
p1.add(txtName);
JPanel p2 = new JPanel();
JLabel lblPrice = new JLabel("商品单价:");
txtPrice = new JTextField(10);
p2.add(lblPrice);
p2.add(txtPrice);
JPanel p3 = new JPanel();
JLabel lblNumber = new JLabel("商品数量:");
txtNumber = new JTextField(10);
p3.add(lblNumber);
p3.add(txtNumber);
JPanel p4 = new JPanel();
JLabel lblTotal = new JLabel("商品总价:");
txtTotal = new JTextField(10);
txtTotal.setEditable(false);
p4.add(lblTotal);
p4.add(txtTotal);
JPanel p5 = new JPanel();
btnCal=new JButton("计算");
btnSave=new JButton("保存");
p5.add(btnCal);
p5.add(btnSave);
this.add(p1);
this.add(p2);
this.add(p3);
this.add(p4);
this.add(p5);
this.setVisible(true);
}
}
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class ExamGUI extends JFrame {
JTextField txtName; // txtName用于输入用户姓名
JTextField txtPrice; // txtPrice用于输入单价
JTextField txtNumber; // txtNumber用于输入数量
JTextField txtTotal; // txtTotal用于显示计算结果
JButton btnCal, btnSave; // btnCal用于计算总价,btnSave用于保存
public static void main(String[] args) {
new ExamGUI();
}
public ExamGUI()
{
this.setTitle("商品总价计算");
this.setSize(400, 300);
this.setResizable(false); // 设置窗体不能改变大小
this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
this.setLayout(new GridLayout(5, 1));
JPanel p1 = new JPanel();
JLabel lblName = new JLabel("客户姓名:");
txtName = new JTextField(10);
p1.add(lblName);
p1.add(txtName);
JPanel p2 = new JPanel();
JLabel lblPrice = new JLabel("商品单价:");
txtPrice = new JTextField(10);
txtPrice.addFocusListener(new FocusListener() {
@Override
public void focusLost(FocusEvent e) {
try {
Integer.parseInt(txtPrice.getText());
} catch (Exception e2) {
txtPrice.setText("");
JOptionPane.showMessageDialog(null, "输入数据有误");
}
}
@Override
public void focusGained(FocusEvent e) {
// TODO Auto-generated method stub
}
});
p2.add(lblPrice);
p2.add(txtPrice);
JPanel p3 = new JPanel();
JLabel lblNumber = new JLabel("商品数量:");
txtNumber = new JTextField(10);
txtNumber.addFocusListener(new FocusListener() {
@Override
public void focusLost(FocusEvent e) {
try {
Integer.parseInt(txtNumber.getText());
} catch (Exception e2) {
txtNumber.setText("");
JOptionPane.showMessageDialog(null, "输入数据有误");
}
}
@Override
public void focusGained(FocusEvent e) {
// TODO Auto-generated method stub
}
});
p3.add(lblNumber);
p3.add(txtNumber);
JPanel p4 = new JPanel();
JLabel lblTotal = new JLabel("商品总价:");
txtTotal = new JTextField(10);
txtTotal.setEditable(false);
p4.add(lblTotal);
p4.add(txtTotal);
JPanel p5 = new JPanel();
btnCal = new JButton("计算");
btnCal.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int price = Integer.parseInt(txtPrice.getText());
int number = Integer.parseInt(txtNumber.getText());
txtTotal.setText(price * number + "");
}
});
btnSave = new JButton("保存");
btnSave.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (txtName.getText() == null || "".equals(txtName.getText())) {
JOptionPane.showMessageDialog(null, "客户姓名不能为空");
}
}
});
p5.add(btnCal);
p5.add(btnSave);
this.add(p1);
this.add(p2);
this.add(p3);
this.add(p4);
this.add(p5);
this.setVisible(true);
}
}