首页 > 解决方案 > javax.swing.JOptionPane 不显示结果

问题描述

嗨,我是 Java 和编程新手。

我的任务是编写一个程序来计算和打印一家综合销售公司的销售人员奖金。我的类和测试类编译正确,我可以输入员工姓名、员工代码和销售额,但之后没有显示结果。

我需要运行测试类,以便员工可以输入他们的姓名、员工代码和总销售额,屏幕将根据总销售额显示他们的奖金。例如,如果员工代码 1 的 Bob 赚了超过 10,000 美元,他们将获得 500 美元的奖金。我可以输入名称、代码和销售额,但输入后我只收到一条消息,说按任意键继续。感谢您的任何帮助。

这是我的测试课:

import javax.swing.JOptionPane;

public class SalesTester {

    public static void main(String[] args) {
        String name = JOptionPane.showInputDialog("Please enter name");
        int code = Integer.parseInt(JOptionPane.showInputDialog("Please enter company code"));
        double sales = Double.parseDouble(JOptionPane.showInputDialog("Please enter your total sales"));
        double bonus = 0;

        if (sales > 0.0)
            switch (code) {
                //employee 1
                case 1:
                    if (sales >= 10000)
                        bonus = 500;
                    else
                        bonus = 200;
                    break;
                //employee 2
                case 2:
                    if (sales >= 20000)
                        bonus = 600;
                    else
                        bonus = 550;
                    break;
                //employee 3
                case 3:
                    if (sales < 10000)
                        bonus = 150;
                    break;
                //employee 4
                case 4:
                    if (sales < 10000)
                        bonus = 150;
                    break;
                //employee 5
                case 5:
                    if (sales < 10000)
                        bonus = 150;

                    System.out.println("Hello " + name + " your bonus is = " + bonus);
                    System.out.println("Error, please enter a positive value only");
            }
    }
}

标签: java

解决方案


如何重构您的代码并拆分两个操作:

  1. 从用户和计算奖金接收数据
  2. 打印出用户名和奖金

例子:

public static void main(String[] args) {
    String name = JOptionPane.showInputDialog("Please enter name");
    int employeeCode = Integer.parseInt(JOptionPane.showInputDialog("Please enter company code"));
    double sales = Double.parseDouble(JOptionPane.showInputDialog("Please enter your total sales"));
    JOptionPane.showMessageDialog(null, "Hello " + name + " your bonus is = " + calcBonus(employeeCode, sales));
}

private static double calcBonus(int employeeCode, double sales) {
    if (Double.compare(sales, 0) > 0) {
        if (employeeCode == 1)
            return Double.compare(sales, 100_000) >= 0 ? 500 : 200;
        if (employeeCode == 2)
            return Double.compare(sales, 200_000) >= 0 ? 600 : 550;
        if (employeeCode == 3 || employeeCode == 4 || employeeCode == 5)
            return Double.compare(sales, 100_000) < 0 ? 150 : 0;
    }

    return 0;
}

推荐阅读