Для Java існує досить багато фреймворків gui, але що визнано сьогоднішнім вибором?
Далі йде моє розуміння різних рамок, будь ласка, виправте мене, якщо я помиляюся. Це дуже слабко визначений набір питань, але я все ще вважаю його цінним для тих, хто думає про створення багатих додатків для gui.
Це сама основа гойдалки, вона добре спрацьовує, але не має вдосконалених компонентів. Якщо ви маєте намір створити багаті програми, AWT, мабуть, не такий шлях. Однак для менших програм gui, які не потребують розширених інтерфейсів користувача. Це може підходити ідеально, оскільки це випробувана рамка.
На основі AWT, як було зазначено раніше. У дитинстві він розглядався як повільний і невдалий і змусив IBM створити SWT для Eclipse. Однак із Java 5 (або 6?) Swing став основою вибору для створення нових додатків. Гойдалка має багато багатих компонентів, але їх у деяких областях все ще бракує. Одним із прикладів є те, що не існує повнофункціонального компонента TreeTable, який може сортувати та фільтрувати / шукати.
Створений IBM для Eclipse, вони, здається, думали, що Swing на той час не підходив для Eclipse. Сам по собі досить низький рівень, і він використовує вбудовані віджети платформи через JNI. Це зовсім не пов'язано з Swing та AWT. Однак їх API дещо незграбний і не інтуїтивно зрозумілий. У них є деякі просунуті компоненти, такі як TreeTable. (але я не думаю, що вони підтримують сортування та фільтрування з поля). SWT використовує деякі вроджені прив'язки (через JNI?), І розголос в Інтернеті полягає в тому, що ця структура не повинна використовуватися в сучасних проектах. (чому ні?)
На основі Swing і його місією є створення багатих компонентів для гойдалки. Ще в розробці. (не дуже активний.) Мають дуже гарний набір компонентів, як, наприклад, TreeTable. Але TreeTable не підтримує фільтрування та сортування, наскільки я знаю. Однак він підтримує пошук із виділенням.
Зауважте, що SwingX - це компоненти (AFAIU), які є розширеннями або композиціями існуючих компонентів Swing
JGoodies
Рамка, про яку я нічого не знаю ... У чому це сильні та слабкі сторони? Який набір Jgoodies крім решти?
JGoodies OTOH - це про PLAF та макети.
Останній флагман Java / Oracle. що обіцяє стати стандартом факто в розробці багатих настільних або веб-додатків.
Він надає користувальницький інтерфейс за допомогою Java2D, тим самим мінімізуючи вплив (IMO, роздутий) спадщини Swing та AWT. (@ Август Thoo)
Здається, головна увага приділяється RIA (Rich Internet applications), але, здається, вона може бути застосована і до настільних додатків. І як особистий коментар, виглядає дуже цікаво! Особливо мені подобається, що це проект apache.
https://cwiki.apache.org/PIVOT/frequently-asked-questions-faq.html
Ява-обгортка до рідної бібліотеки qt, яка написана на c / c ++. Дуже потужний, широко використовується і приймається. Має багато графічних компонентів та простий у користуванні API.
Отже, спробуйте підсумувати трохи того, що я прошу:
Скажіть, що я хотів сьогодні створити на Java настільний додаток, який включає багато вдосконалених компонентів, що мені вибрати? І чому?
Яку з цих рамок слід визнати застарілою, а яку слід визнати рамками далекого майбутнього?
Що являє собою сучасний фактичний стандарт та які інструменти ви використовуєте для створення додатків java gui?
Я можу пошкодувати, що запитав це, але я все одно намагаюся спробувати:
Кажуть, що мережа C # / має дуже гарний набір простих у використанні компонентів, які можна розгинати в будь-якому можливому напрямку. І після дослідження різних java фреймів я певною мірою не можу сказати те саме про Java. Чому це? Чому java (яка є найбільш широко використовуваною мовою програмування у світі) не має однакового набору компонентів графічного інтерфейсу?
Це лише те, що java розробила свої компоненти gui на набагато нижчому рівні, і можна написати всі ці вдосконалені компоненти, які я шукаю, але вам доведеться зробити багато, якщо не всю роботу самостійно?