Разное действие в зависимости от того, какой переключатель выбран - PullRequest
0 голосов
/ 19 сентября 2019
class personalFrame {

    JTextField totalIncome = new JTextField(10);
    private JFrame frame3 = new JFrame("Personal Tax Calculator");
    JButton Calculate = new JButton("Calculate");
     JRadioButton residentTax = new JRadioButton("Resident Tax");
     JRadioButton nonresidentTax = new JRadioButton("Working Tax");
     JRadioButton workingTax = new JRadioButton("Non-working Tax");

    public personalFrame() {

        frame3.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame3.setSize(300, 100);
        frame3.setVisible(true);
        frame3.setLayout(new FlowLayout());

        frame3.add(new JLabel("Total Income "));
        frame3.add(totalIncome);
        frame3.add(Calculate);
        frame3.add(residentTax);
        frame3.add(nonresidentTax);
        frame3.add(workingTax);

        Calculate.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {

                String Income = totalIncome.getText();
                Double totalIncome = Double.parseDouble(Income);
                double expenseTax = 0;
                double totalTax = totalIncome - expenseTax;
                String Tax = String.valueOf(totalTax);
                JOptionPane.showMessageDialog(null, "Tax payable is A$" + Tax, "Total tax", JOptionPane.INFORMATION_MESSAGE);

            }

        });

           residentTax.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent ie){
                double expenseTax = 1000;
            }
        });

           nonresidentTax.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent ie){
                 double expenseTax = 1500;

            }
        });

           workingTax.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent ie){
                 double expenseTax = 2000;

            }
        });

    }
}

Приведенный выше код предназначен для программы расчета налога, над которой я сейчас работаю.Этот фрейм является опцией, которую может выбрать пользователь.Как только здесь они могут ввести общий доход, и налог будет рассчитан (я еще не связал метод с этим, сейчас это просто подсчет заполнителя, пока кнопки не работают)

Я новичок в jswing, так что я немногозапутался в функциях.Я хочу, чтобы двойной eexpenseTax в калькуляторе ActionListener был равен любой выбранной пользователем радиокнопке (резидентный, нерезидентный или рабочий налог, каждый со своим собственным счетомTax varialbe)

как этого добиться?спасибо

1 Ответ

0 голосов
/ 19 сентября 2019
JButton Calculate = new JButton("Calculate");

Имена переменных НЕ должны начинаться с символа верхнего регистра.Будьте последовательны!

double expenseTax = 0;
double totalTax = totalIncome - expenseTax;

Приведенный выше код не имеет смысла.Значение costTax всегда равно нулю.

double expenseTax = 1000;

Код из ваших ActionListeners также не делает ничего, что вы определяете как «локальную переменную», которую нельзя использовать где-либо еще в вашей программе.

Таким образом, решение состоит в том, чтобы использовать «переменную экземпляра» в вашем классе.JRadioButton ActionListeners обновит эту переменную.Затем JButton ActionListener будет использовать эту переменную в расчете.

Итак, где вы определяете кнопки, определяете переменную:

private couble expenseTax;

В слушателях JRadioButton вы затем используете:

//double expenseTax = 1000;
expenseTax = 1000;

И, наконец, в используемом вами JButton ActionListener:

//double expenseTax = 0;
double totalTax = totalIncome - expenseTax;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...