Как установить параметр объекта равным значению поля j в actionListener? - PullRequest
0 голосов
/ 21 сентября 2019

Приведенный ниже код принимает пользовательский ввод через серию j-полей, а затем использует этот ввод для расчета налога в зависимости от их статуса (IE работает, иностранный и т. Д.)

Что я хочу от своего testCode (mainметод) - установить для taxableIncome и totalExpense в классе businessTaxPayer значения incomeTax и expenseTax в классе businessFrame (в actionListener)

Для визуализации я хочучто-то похожее на это

Вместо того, чтобы иметь такой объект

BusinessTaxPayer BTPcustomer1 = new BusinessTaxPayer(11111, "Adams Electronics", 75000, 15000 etc......);

Я хочу заменить значения 75000 (taxableIncome) и 15000 (totalExpenses) чем-то вроде этого

BusinessTaxPayer BTPcustomer1 = new BusinessTaxPayer(11111, "Adams Electronics", frameObj.incomeTax, frameObj.expenseTax etc...);

Я пытался объявить переменные как глобальные, но actionListner не работает, если я это сделаю.Я также пытался создать объект businessFrame и использовать его для вызова переменных, но он их не видит, если предположить, что они объявлены в actionListener.Есть ли способ поделиться переменными, объявленными в actionListener?Я более чем рад уточнить любую информацию, если не ясно.

ОСНОВНОЙ МЕТОД

public abstract class TestCode implements TaxProfile {

    public static void main(String[] args) {
        mainFrame mFrame = new mainFrame();

        BusinessTaxPayer BTPcustomer1 = new BusinessTaxPayer(11111, "Adams Electronics", 75000, 15000, new Address("69", "Paramount Rd", "Ipswich", "Brisbane", "QLD", 3415));

        ArrayList<TaxProfile> taxPayer = new ArrayList<>();

        taxPayer.add(BTPcustomer1);

        BTPcustomer1.getPayableTax();

        for (TaxProfile u : taxPayer) {
            System.out.println(u);
        }
    }
}

РАМКА БИЗНЕСА

class businessFrame {

    BusinessTaxPayer p = new BusinessTaxPayer();

    JTextField totalIncome = new JTextField(10);
    JTextField totalExpenses = new JTextField(10);

    JButton Calculate = new JButton("Calculate");

    private JFrame frame2 = new JFrame("Business Tax Calculator");

    public businessFrame() {

        frame2.add(new JLabel("Total Income "));
        frame2.add(totalIncome);

        frame2.add(new JLabel("Total Expenses "));
        frame2.add(totalExpenses);

        frame2.add(Calculate);

        frame2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame2.setSize(500, 100);
        frame2.setLayout(new FlowLayout());
        frame2.setVisible(true);

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

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

            }
        });
    }
}

BUSINESS_TAX_CLASS

public class BusinessTaxPayer implements TaxProfile {

    private int tfn;
    private String companyName;
    private double taxableIncome;
    private double totalExpense;
    private Address address;

    public BusinessTaxPayer(int tfn, String companyName, double taxableIncome, double totalExpense, Address address) {
        this.tfn = tfn;
        this.companyName = companyName;
        this.address = address;
        this.totalExpense = totalExpense;
    }

    public BusinessTaxPayer() {
    }

    public String toString() { //To be polished up
        return ("TFN:" + getTfn() + "\n" + "Company Name: " + getCompanyName() + "\n" + "Taxable income: " + getTaxableIncome() + "\n" + "Total Expenses" + getTotalExpense() + "\n" + "Address: " + getAddress().toString() + "\n");
    }

    public int getTfn() {
        return tfn;
    }

    public void setTfn(int tfn) {
        this.tfn = tfn;
    }

    public String getCompanyName() {
        return companyName;
    }

    public void setCompanyName(String companyName) {
        this.companyName = companyName;
    }

    public double getTaxableIncome() {
        return taxableIncome;
    }

    public void setTaxableIncome(double taxableIncome) {
        this.taxableIncome = taxableIncome;
    }

    public double getTotalExpense() {
        return totalExpense;
    }

    public void setTotalExpense(double totalExpense) {
        this.totalExpense = totalExpense;
    }

    public Address getAddress() {
        return address;
    }

    public void setAddress(Address address) {
        this.address = address;
    }

    public double getPayableTax() {
        return (.30 * getTaxableIncome());
    }

    public String getTaxID() {
        String TFN = String.valueOf(tfn);
        return TFN;
    }

    public String getNameOfTaxPayer() {
        return companyName;
    }
}
...