Приведенный ниже код принимает пользовательский ввод через серию 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;
}
}