I have been stuck on this all weekend, i have looked everywhere and not a single solution. All help is appreciated.
int iDayBirth = Integer.parseInt(jTextField_DoBDay.getText());
int iMonthBirth = Integer.parseInt(jTextField_DoBMonth.getText());
int iYearBirth = Integer.parseInt(jTextField_DoBYear.getText());
int iDayCurrent = Integer.parseInt(jTextField_CdDay.getText());
int iMonthCurrent = Integer.parseInt(jTextField_CdMonth.getText());
int iYearCurrent = Integer.parseInt(jTextField_CdYear.getText());
double iDaysAlive = 0;
Calendar caBirthDate = new GregorianCalendar(iYearBirth, iMonthBirth - 1, iDayBirth);
Calendar caCurrentDate = new GregorianCalendar(iYearCurrent, iMonthCurrent - 1, iDayCurrent);
JButton btnCalculate = new JButton("Calculate");
btnCalculate.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
iDaysAlive = (caCurrentDate.getTimeInMillis() - caBirthDate.getTimeInMillis());
iDaysAlive = (iDaysAlive / (24 * 60 * 60 * 1000) + 1);
// GET THE ERROR HERE: "Cannot refer to a non-final variable caBirthDate inside an inner class defined in a different method
//get the same error for, caBirthDate and iDaysAlive
}
});
btnCalculate.setFont(new Font("Calibri", Font.BOLD, 12));
btnCalculate.setBounds(188, 187, 89, 23);
frame.getContentPane().add(btnCalculate);
jTextField_Result = new JTextField("Total Days Alive: " + iDaysAlive);
jTextField_Result.setBounds(150, 233, 170, 20);
frame.getContentPane().add(jTextField_Result);
jTextField_Result.setColumns(10);
If i move the calender and integer variable to inside the ActionListener then i can't access the iDaysAlive variable in the final textfield.