Davvero una buona domanda. Mi sono sempre chiesto questo per alcuni anni successivi in passato, ho pensato che ci fosse qualche ragione legittima, ma non ce n'è davvero.
Penso che la risposta sia piuttosto semplice, e molte risposte non stanno davvero analizzando il problema.
Se il tuo linguaggio consente di disegnare piexel sullo schermo, è possibile creare al 100% un framework gui basato su di esso che imiterà i controlli del form di Windows. sentire esattamente.
Poiché Java è multipiattaforma, è anche possibile assicurarsi che, in base al tipo di sistema corrente in esecuzione (Mac / Windows), l'interfaccia utente scelga di apparire diversa su entrambe le piattaforme, facendo corrispondere lo stile della piattaforma di runtime.
Come puoi vedere in XAML, ad esempio, l'interfaccia utente può essere facilmente presentata in una forma e in una lingua molto strutturati. La scelta dei comportamenti "nativi" è anche possibile se si impiega tempo per farlo.
Quindi sarebbe possibile creare un framework GUI che consentirebbe agli sviluppatori Java di ottenere applicazioni che sembrerebbero native su Mac e Windows.
Quindi arriviamo a Swing, questo è solo un framework GUI dal potenziale infinito di framework GUI che potrebbero essere creati per Java. Si comporta come è stato programmato, che non segue il processo di cui sopra e ottieni app stranamente su entrambi i sistemi. Questa è la scelta fatta dagli sviluppatori di Swing, nessuno li ha obbligati a farlo e a comportarsi in quel modo.