Hi everybody, I have again one more q... conceptually I couldnt understand a point.. if you enlighten me about it, I will be very happy.
In the constructor of a class, I create an object with; <blockquote>code:<pre name="code" class="core"> JPanel yadayada=new JPanel(new BorderLayout()); </pre></blockquote>
.. and right a couple of lines down there, I place an action for a button which is making the panel unvisible(thats what I intended) ;
...and the compiler "doesnt give concent" :roll: by saying;
"editing.java:77: local variable daily_details_table_panel is accessed from within inner class; needs to be declared final { daily_details_table_panel.setVisible(false);"
Conceptually I didnt get the point... Do you know why? Thank you all.
Initializing things in your constructor is fine, and while using a member variable would fix the error, it would lead to a class containing a bunch of unneeded member variables, and who needs that?
The error message says to mark your variable declaration "final" -- why not just do that?
final JPanel daily_details_table_panel = new JPanel(new BorderLayout());
The explanation is simple: for an inner class to be able to access a local variable, the compiler needs to be sure the variable's value will be available when the inner class executes -- which may be long after the method in which the local variable is declared, has returned. Therefore the compiler insists that the variable be final (constant) so that it can save a copy of the variable's value for use by the inner class.