When comparing Java / Swing vs Tkinter, the Slant community recommends Java / Swing for most people. In the question“What are the best cross-platform GUI toolkits?” Java / Swing is ranked 16th while Tkinter is ranked 20th. The most important reason people chose Java / Swing is:
Swing is part of the Java API.
Ranked in these QuestionsQuestion Ranking
Pros
Pro Part of Java
Swing is part of the Java API.
Pro Very good and powerful API
E.g. separate models.
Pro Powerful controls
E.g. JTable which works fine on every platform with very large row counts, e.g. 100.000+.
Pro Several look and feels available
Pro Easy to use
Drag and drop utility.
Pro Free for commercial use
Pro Included in the standard Python library
You probably already have it, since it's included in the standard Python distributions.
Pro Easy to learn and get productive with
TkInter is a small library with a gentle learning curve compared to what’s out there. It has a straightforward API and is often the go-to choice for building quick GUIs for Python scripts.
Pro Building executables is less complicated
Compared to other GUI libraries, building executables for TkInter applications are simpler because TkInter is included in Python and has no other dependencies. This results in less complicated packaging requirements and smaller binary size.
Pro Fast
Cons
Con Only for JRE-based languages
Con Bugfixes rely on Oracle
Con No real native look
Though the importance of the native look seems to have dropped the last years by the raise of in-browser-applications.
However, you can achieve native look and feel using UIManager.systemLookAndFeelClassName.
Con Severely deprecated
The system is ancient and Oracle has dropped support for it in favor of JavaFX
Con No advanced widgets
TkInter does not come with advanced widgets out of the box (e.g. date picker).
Con Not good looking
You need a lot of code to make it look good.
Con No reliable UI builder available
There is no tool in the same league as Qt Designer (PyQt) for TkInter.