Très bonne question. Je me suis toujours posé des questions moi-même au cours des années suivantes, je pensais qu'il y avait une raison légitime à cela, mais ce n'est pas le cas.
Je pense que la réponse est assez simple, et beaucoup de réponses ne creusent pas vraiment la question.
Si votre langue permet de dessiner piexel à l'écran, il est alors 100% possible de créer un framework d'interface graphique basé sur celui-ci, qui imitera précisément les contrôles de formulaire Windows.
Étant donné que Java est une plate-forme croisée, il est également tout à fait possible de s’assurer que, en fonction du type de système en cours d’exécution (Mac / Windows), l’UI choisira d’avoir une apparence différente sur les deux plates-formes, correspondant au style de plate-forme d’exécution.
Comme vous pouvez le voir dans XAML par exemple, l'interface utilisateur peut être facilement présentée sous une forme et un langage très structurés. Le choix des comportements "natifs" est également possible si on prend le temps de le faire.
Il serait donc possible de créer une infrastructure graphique permettant aux développeurs Java d’obtenir des applications ayant un aspect natif sur Mac et Windows.
Nous arrivons donc à Swing, qui n’est qu’un framework GUI sur une infinité potentielle de frameworks GUI pouvant être créés pour Java. Il se comporte comme il a été programmé, ce qui ne suit pas le processus ci-dessus et vous obtenez des applications étranges à la recherche sur les deux systèmes. C’est le choix des développeurs Swing, personne ne les a forcés à le faire et à se comporter de la sorte.