balu: (Default)
[personal profile] balu
Довгий час, та й зараз, Java мала проблеми з приємним користувацьким інтерфейсом. Проблему вирішували за допомогою різних бібліотек, але все було досить сумно. Розробники Intellij Idea перші розв'язали цю проблему в і зараз вона виглядає доволі няшно. А сьогодні я знайшов бібліотеку, яка дозволяє зробити красивий сучасний інтерфейс. Ловіть FlatLaf.

Date: 2021-04-02 03:24 pm (UTC)
juan_gandhi: (Default)
From: [personal profile] juan_gandhi
Культурненько выглядит.

Date: 2021-04-02 05:21 pm (UTC)
euthanasepam: Ла-ла-ла-ла! Ла-ла-ла-ла! (Default)
From: [personal profile] euthanasepam
Жаба давно має прекрасний і правильно продуманий GUI — Swing.

А це, що на малюнках, з погляду ергономіки є кепським винаходом.

Date: 2021-04-02 07:32 pm (UTC)
euthanasepam: Ла-ла-ла-ла! Ла-ла-ла-ла! (Default)
From: [personal profile] euthanasepam
Той старий L&F правильний, бо зроблений за наукою (численні дослідження 1970—1980-х років). А «сучасні» «свістєлкі і пєрдєлкі» роблять дилетанти без знання предметної галузі, без доброго смаку, без уявлень про довершену естетику. Зате не так, як у старпьорів, еге ж.

Date: 2021-04-02 07:33 pm (UTC)
euthanasepam: Ла-ла-ла-ла! Ла-ла-ла-ла! (Default)
From: [personal profile] euthanasepam
А, «свістєлкі-пєрдєлкі»… Було так і сказати.

Date: 2021-04-02 07:41 pm (UTC)
euthanasepam: Ла-ла-ла-ла! Ла-ла-ла-ла! (Default)
From: [personal profile] euthanasepam
Я дуже добре знаю, як візуальна культура здеградувала за минулі 20 років.

Візьмімо, наприклад, текстовий редактор 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/

Date: 2021-04-03 12:43 pm (UTC)
euthanasepam: Ла-ла-ла-ла! Ла-ла-ла-ла! (Default)
From: [personal profile] euthanasepam
Та ну неправда. Все там налаштовується, і шрифти теж.

Хіба що засобів налаштування зазвичай не дають людям в руки, а колупатися в мануалах і шукати, де там що треба написати руками чи додавати до команди запуску, аби воно почали виглядати інакше, мало хто буде.

У деяких програмах (наприклад, jEdit) ці налаштування додають у GUI, відтак усі мають змогу зробити собі вигляд програми на власний смак у досить широкому діапазоні варіянтів.

Date: 2021-04-03 01:08 pm (UTC)
euthanasepam: Ла-ла-ла-ла! Ла-ла-ла-ла! (Default)
From: [personal profile] euthanasepam
То всьо теж сільська художня самодіяльність.


На науковому підґрунті було зроблено це:

https://en.wikipedia.org/wiki/IBM_Common_User_Access

https://en.wikipedia.org/wiki/Motif_(software)


А коли мова йде про вигляд пультів чи чогось подібного «для роботи», то краще, щоб вони мали якийсь такий вигляд:

http://xforms-toolkit.org/screenshots

Бо природу не обманеш. І коли операторові якоїсь машини чи системи зненацька треба буде тицьнути в потрібну пімпу на екрані, кожна мить ніяковіння перед антиергономічними свістєлко-пєрдєлками може коштувати збитків чи трагічних наслідків. А ще краще, щоби пімпи були не на екрані, а фізичні, тривимірні, такого розміру, щоб і в рукавиці можна були натиснути, і з виразним тактильним зворотнім зв’язком.

Date: 2021-04-03 01:14 pm (UTC)
euthanasepam: Ла-ла-ла-ла! Ла-ла-ла-ла! (Default)
From: [personal profile] euthanasepam
Катастрофи трапляються тоді, коли програмісти починають робити UI для нормальних людей за своїми збоченими звичками («око замилене»). Для більшості звичайних людей комп’ютер не є засобом цілодобової роботи в одному єдиному контексті уваги на куцому шматку екрану з однаковими шматками розмальованого тексту. Пересічні люди весь час змінюють контекст своєї роботи. Тому малоконтрастне й монотонне візуальне оформлення інтерфейсів є для них обтяжливим аж до нервових розладів, бо їм доводиться щоразу наче заново з нуля вивчати розташування елементів інтерфейсу на екрані.

Date: 2021-04-03 02:19 pm (UTC)
euthanasepam: Ла-ла-ла-ла! Ла-ла-ла-ла! (Default)
From: [personal profile] euthanasepam
Пізніше напишу. Мені для цього тре увімкнути комп’ютер із лінупсом, а він розібраний.

Date: 2021-04-03 02:47 pm (UTC)
euthanasepam: Ла-ла-ла-ла! Ла-ла-ла-ла! (Default)
From: [personal profile] euthanasepam
Я не знаю, чому все треба вмикати. Можливо тому, що Жабу задумано як універсальний продукт, що має працювати на будь-якому обладнанні (навіть з мінімальними ресурсами), де виробник цього обладнання і софту має сам усе налаштувати для споживачів з урахуванням специфіки свого продукту. А практично виробники на це забивають путіна.

Date: 2021-06-08 05:01 am (UTC)
euthanasepam: Ла-ла-ла-ла! Ла-ла-ла-ла! (Default)
From: [personal profile] euthanasepam
Нарешті склав докупи свій лінуксовий комп’ютер і подивився у налаштування для Жаби. Колись було шукав ув інтернеті та дечого знайшов і навіть сяк-так занотував.


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-11




2. Деяким програмам (як jEdit) цього досить, а іншим (NetBeans) нє, бо в них налаштування шрифтів читаються ще звідкись або й захардкоджено всередині. Для них я маю спеціяльний рядок запуску на кшталт оцього:

/opt/netbeans/7.4/netbeans/bin/netbeans --fontsize 14




Скріншотів не робив, але виглядає все чудово. Проте, як на мій смак, гірше, ніж у Windows.

Date: 2021-06-08 05:03 am (UTC)
euthanasepam: Ла-ла-ла-ла! Ла-ла-ла-ла! (Default)
From: [personal profile] euthanasepam
Шрифтів у системі може просто не бути, хе-хе. Жаба кілька носить із собою, якщо не помиляюсь.

Date: 2021-06-08 09:21 am (UTC)
euthanasepam: Ла-ла-ла-ла! Ла-ла-ла-ла! (Default)
From: [personal profile] euthanasepam
Жаба, якщо не помиляюсь, може працювати на таких системах, де нема жодних шрифтів і жодних візуальних інтерфейсів. Себто вони для Жаби не є обов’язковими.

Profile

balu: (Default)
от. Михайло

December 2025

S M T W T F S
 123 456
7 8910111213
14151617181920
21222324252627
28293031   

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 30th, 2026 08:34 am
Powered by Dreamwidth Studios