Entry tags:
Тепер я радий, що не перейшов на JavaFx.
Довгий час, та й зараз, Java мала проблеми з приємним користувацьким інтерфейсом. Проблему вирішували за допомогою різних бібліотек, але все було досить сумно. Розробники Intellij Idea перші розв'язали цю проблему в і зараз вона виглядає доволі няшно. А сьогодні я знайшов бібліотеку, яка дозволяє зробити красивий сучасний інтерфейс. Ловіть FlatLaf.
no subject
no subject
Угу
no subject
А це, що на малюнках, з погляду ергономіки є кепським винаходом.
no subject
Це тема для Swing
no subject
no subject
Розкажи це усім, хто користується Ідеєю та її похідними.
Swing кошерний, кошерніше тільки Tk, але L&F там відверто несучасний.
no subject
no subject
Конкретно Pure Swing напрягає очі, погано налаштовується, має купу проблем з шрифтами і паршиво виглядає скрізь. Навіть Nimbus це не виправив. А L&F з Ідеї це пофіксив.
no subject
Хіба що засобів налаштування зазвичай не дають людям в руки, а колупатися в мануалах і шукати, де там що треба написати руками чи додавати до команди запуску, аби воно почали виглядати інакше, мало хто буде.
У деяких програмах (наприклад, jEdit) ці налаштування додають у GUI, відтак усі мають змогу зробити собі вигляд програми на власний смак у досить широкому діапазоні варіянтів.
no subject
Як увімкнути антиальясинг шрифтів? У Ідеї він з коробки, у НетБінз шрифти лайно. Те ж саме з відображенням системних шрифтів, вони відображаються трохи не так, як у всій системі.
no subject
no subject
В залежності від способу установки не завжди можливо його увімкнути. Інше питання, чому його потрібно вмикати руками. А ця ліба класна тим, що все, що потрібно, працює з коробки: і шрифти, і фон, і виділення віджетів.
no subject
no subject
Та що може бути простіше: якщо в системі увімкнено антиальясинг, то і сам увімкни його. І шрифти повинні виглядати як системні, а не як універсальна жаба відрендерить.
no subject
no subject
Я використовую ті шрифти, які 100% є в системі.
no subject
no subject
Для свінга потрібні ікси чи фреймбуфер
no subject
1. У ~/.profile чи деінде, звідкіля програми читають свої налаштування, пишу таке і для наочності лишаю все разом із закоментованими рядками:
#~ Java settings. #~ #~ Take some reading: #~ #~ https://stackoverflow.com/questions/179955/how-do-you-enable-anti-aliasing-in-arbitrary-java-apps #~ #~ http://wiki.netbeans.org/FaqFontRendering #~ #~ NetBeans uses the Swing text renderer. Since JDK 1.6 this #~ renderer supports sub-pixel rendering in addition to #~ standard anti-aliasing. The renderer supports several #~ operating modes. According to #~ #~ http://docs.oracle.com/javase/6/docs/technotes/guides/2d/flags.html#aaFonts #~ #~ if the antialiasing switch 'awt.useSystemAAFontSettings' is not #~ set, then Swing text renderer is trying to detect the optimum #~ setting for given system and use that one. Since 1.6 the renderer #~ implements following options: #~ #~ off | false | default - meaning "do not override what has been auto-detected" #~ on - use anti-aliasing without sub-pixel rendering #~ gasp - use anti-aliasing wit sub-pixel rendering, intended for use both on CRT and LCD #~ lcd - use anti-aliasing wit sub-pixel rendering, optimized for LCD #~ lcd_hbgr - same as lcd, but with different distribution of sub pixels (monitor upside down) #~ lcd_vrgb - same as lcd, but with different distribution of sub pixels (monitor is vertical) #~ lcd_vbgr - same as lcd, but with different distribution of sub pixels (vertical again but on other side) #~ #~ AMAZON_CORRETO="/usr/lib/jvm/java-1.8.0-amazon-corretto" #~ OPENJDK="/usr/lib/jvm/java-1.8.0-openjdk-amd64" #~ JAVA_HOME="${AMAZON_CORRETO}/bin" #~ JRE_HOME="${AMAZON_CORRETO}/jre/bin" #~ export JAVA_HOME #~ export JRE_HOME #~ export PATH="${JAVA_HOME}:${PATH}" _JAVA_OPTIONS="-Dawt.useSystemAAFontSettings=lcd -Dswing.aatext=true" JAVA_TOOL_OPTIONS=${_JAVA_OPTIONS} JAVA_FONTS="/usr/share/fonts/truetype/" export _JAVA_OPTIONS export JAVA_TOOL_OPTIONS export JAVA_FONTS #~ Swing #~ java -Dswing.aatext=true -Dswing.plaf.metal.controlFont=Tahoma -Dswing.plaf.metal.userFont=Tahoma #~ Plastic #~ java -DWindows.controlFont=Tahoma-plain-11 -DWindows.menuFont=Tahoma-plain-12 -DPlastic.controlFont=Tahoma-plain-11 -DPlastic.menuFont=Tahoma-bold-112. Деяким програмам (як jEdit) цього досить, а іншим (NetBeans) нє, бо в них налаштування шрифтів читаються ще звідкись або й захардкоджено всередині. Для них я маю спеціяльний рядок запуску на кшталт оцього:
Скріншотів не робив, але виглядає все чудово. Проте, як на мій смак, гірше, ніж у Windows.
no subject
Я вже давно не страждаю красноглазієм. Якщо воно не працює, то йде у смітник. Та ж фігня, доречі, і на Ардуїні.
no subject
Якщо вже й говорити про гарні приклади "старих" інтерфейсів, то це Tk і похідні. Напр. на ньому написано Tkabber та sK1, що його покійний Ігор Новіков написав був.
no subject
На науковому підґрунті було зроблено це:
https://en.wikipedia.org/wiki/IBM_Common_User_Access
https://en.wikipedia.org/wiki/Motif_(software)
А коли мова йде про вигляд пультів чи чогось подібного «для роботи», то краще, щоб вони мали якийсь такий вигляд:
http://xforms-toolkit.org/screenshots
Бо природу не обманеш. І коли операторові якоїсь машини чи системи зненацька треба буде тицьнути в потрібну пімпу на екрані, кожна мить ніяковіння перед антиергономічними свістєлко-пєрдєлками може коштувати збитків чи трагічних наслідків. А ще краще, щоби пімпи були не на екрані, а фізичні, тривимірні, такого розміру, щоб і в рукавиці можна були натиснути, і з виразним тактильним зворотнім зв’язком.
no subject
Мотіф був кошерним на старих моніторах. І усі годні гуї вміють ним прикидатися. Але я жодного разу не бачив, щоб це хтось використовував.
no subject
А там жах: шрифти — лайно, там реально нечитабельний текст. Вони його хоча б капсом зробили. Повно дрібного тексту на темно-сірому фоні. Швидко знайти потрібну тицялку — проблема.
no subject
Те, що ти називаєш колгоспом розроблялося в тому ж Sun і вплинуло на Swing. І воно найбільше відповідає тим прикладам, що ти навів. Навіть більше за Pure Swing. Сабжові теми, між іншим, теж.
no subject
Візьмімо, наприклад, текстовий редактор ActiveState Komodo. UI перший версій мав загальносистемний вигляд з контрастними елементами, до яких не треба було придивлятися, бо їх і так видно. UI останніх версій — це суцільна катастрофа з погляду ергономіки, юзабіліті, санітарних норм та здорового глузду:
https://cdn.activestate.com/wp-content/uploads/2018/09/screenshot.png
Зате сучасно!
Ось історія хвороби (з ілюстраціями) у стислому переказі самих авторів програми:
https://www.activestate.com/blog/history-komodo-trip-down-memory-lane/
no subject
Та й ранніх теж, але кольорова тема з кодом не така вже й погана. Я сам використовую щось схожі коли стемніє kaolin-valley-dark та kaolin-eclipse та kaolin-light коли світло.
no subject
no subject
Проблема Pure Swing в тому, що він виглядає а) неконсистентно на бідь-якій системі б) при цьому він некрасивий.
Це проблема конкретного інтерфейсу. Задача графічної бібліотеки — створити віджети, які будуть просто конфігурятись. Щоб зробити привабливим Swing довелося чекати чверть століття. І це рішення, якраз, і не є монотонним.