By doing so, I call the external class by creating instance. Am I in the right approach?
Well yes you will have plenty of public classes. That's what is a benefit of OOP.
As far as having to recreate an instance of your JTable because you switch panels. You will want to relook at where you create your instance, whether you want to pass the reference of that JTable to the next class, so that that class does not have to create a seperate/different instance of the JTable, which means that they both have no clue as to the others existance.
This approach looks strange to me.
I found that whenever I said that, I needed to rewrite that part. You need to trust your instincts in those areas.
I hope that helps a bit for you. I wish I had a good link for you to go to that explains designing OOP applications. But I don't know of any
sorry. Except maybe some of the forums here. I think there is an OOP forum at Javaranch
Mark