[info]ru_java


ru.java

все о языке программирования java


Previous Entry в избранное рассказать другу Next Entry
Некорректное отображение комбобоксов под Ubuntu
sandlex_general
[info]sandlex пишет в [info]ru_java
Народ, а подскажите плиз, из-за чего может быть такая некорректная отрисовка комбобоксов в java-приложениях (включая NetBeans)


Имею: Ubuntu 8.04.1 с темой “human” и “extra” визуальными эффектами. Java version - jdk 1.6.0_10-rc. Точно не уверен, но, кажется, такое проявлялось и на предыдущей версии Ubuntu 7.10 с jdk6u2.

Может быть что-то где-то подкрутить нужно? Не сталкивался никто? Руками ничего не ковырял, все так работает сразу после установки системы.

(комментировать)
Хм... И что, с визуальными эффектами "extra" нормально отрисовываются диалоговые окошки? Попробуй отключить эффекты.

L-n-F тот, который активизируется по дефолту (см. картинку со скриншотом нетбинса)
точнее, к сожалению, сейчас сказать не могу, ибо нет под рукой машины

Вообщем, это либо проблемы с ресайзом (фиксятся скорей всего сменой шрифтов на более мелкий - MS Trebuchet 8pt, например). Либо проблемы с L&F, можно поробывать выбрать како-нибудь другой, если это позволяют настройки IDE.

окей, попробую пошебуршать по настройкам. но не хотелось бы все-таки фиксить это уменьшением шрифтов

Не, не получится, я уже понял что это. GTK+ L&F не исправить шрифтами.
Надо менять L&F на более другое что-то.

спасибо, попробую этот вариант

Ааа, ну он действительно глючный. Не только в NetBeans в IDEA точно такой же эффект. Выбирайте другой L&F - Alloy например (если так он есть) :)
Все остальные - страшные :)

вот тут есть примерно на эту тему сравнение сред, кстати
http://www.jroller.com/nivanov/

В принципе, можно сделать свой L&F, который всё кроме JComboBox будет делегировать на Basic, а в BasicJComboBoxUI вручную решить проблему.

круто :) но для начала попробуем решить проблему переключением на более другой l&f из стандартных.
спасибо

Если вдруг захотите сделать таким способом - пишите, может быть, помогу сэкономить пару часов копания в документации

переопределить ссылку на BasicComboBoxUI можно поставив в результат getDefaults() величины ("ComboBoxUI", "yourUIClassPath",)

Наверное, там GTKLookAndFeel, а надо бы Metal.

Вы если найдете, где сменить L&F для NB, напишите, пожалуйста: а то я сейчас посмотрел, словосочетание это увидел только в Tools - Options - Misc - Advanced, но возможности выставить чего-нибудь не увидел.

В общем, у меня не получилось поменять laf для NB. Теоретически, это нужно сделать, задав дефолтный laf для jvm, но скорее всего NB сам потом выбирает, какой ему выбрать из списка доступных. Можете попробовать у себя. Как это сделать, описано здесь: http://java.sun.com/docs/books/tutorial/uiswing/lookandfeel/plaf.html. Также можете посмотреть на форумах: http://ubuntuforums.org/archive/index.php/t-48283.html, http://ph.ubuntuforums.com/showthread.php?t=771396 и http://ubuntuforums.org/showthread.php?t=383394.
Напишите, если получится или уже получилось.

В общем, выставление дефолтового laf для свинговых приложений на laf NB не влияет :( Ну и фиг с ним :)
Файл swing.properties надо класть в JAVA_HOME/jre/lib (в моем случае это /opt/jdk1.6.0_10/lib/swing.properties).

$ netbeans --ui javax.swing.plaf.metal.MetalLookAndFeel

[info]fish_ub7com

2008-11-21 19:27 (UTC)

Уфф. Никаким колдовством над swing.properties и экспортом
$ export _JAVA_OPTIONS="-Dswing.defaultlaf=com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel"
изменить L&F не получилось. Ответ был найден на NetBeans Wiki: http://wiki.netbeans.org/NewAndNoteWorthyMilestone7
Рабочий вариант - запуск из консоли с параметром --ui:
$ netbeans --ui javax.swing.plaf.metal.MetalLookAndFeel

как всегда...

[info]fish_ub7com

2008-11-21 19:31 (UTC)

... ну и как положено, когда проблема решена находится самая прямая и самая правильная ссылка =)))
http://wiki.netbeans.org/NBLookAndFeels

(комментировать)