Дійсно гарне питання. Я завжди цікавився цим протягом кількох наступних років у минулому, я вважав, що в цьому є якась законна причина, але насправді цього немає.
Я думаю, що відповідь досить проста, і багато відповідей насправді не вникають у питання.
Якщо ваша мова дозволяє малювати піксель на екрані, то на 100% можливо створити на його основі рамку gui, яка точно імітуватиме елементи керування формою Windows.
Оскільки Java є кросплатформою, це також цілком можливо переконатися, що на основі реального типу запущеної системи (Mac / Windows) інтерфейс користувача вирішить виглядати по-різному на обох платформах, що відповідає стилю платформи виконання.
Як ви бачите, наприклад, у XAML, інтерфейс користувача може бути легко представлений у дуже структурованій формі та мові. Вибір "рідної" поведінки також можливий, якщо для цього буде потрібно час.
Таким чином, можна було б створити графічний інтерфейс GUI, який би дозволяв розробникам Java отримувати додатки, які виглядатимуть на рідній версії Mac та Windows.
Таким чином, ми переходимо до Swing, це лише одна рамка графічного інтерфейсу з потенційної нескінченності каркасів GUI, які можна було б створити для Java. Він веде себе так, як він був запрограмований, що не відповідає вищевказаному процесу, і ви отримуєте дивно виглядати програми в обох системах. Ось такий вибір зробили розробники Swing, ніхто не змушував їх це робити і так поводитись.