Как установить другой стиль Look & Feel для JTable? - PullRequest
4 голосов
/ 11 декабря 2011

Можно ли установить другой L & F для конкретного компонента (в моем случае JTable), чем уже используется? Если да, то как это сделать?

Редактировать: я написал этот фрагмент кода в соответствии с этим учебником . Почему этот код не работает? Нет ошибок или исключений, но JTable остается тем же.

NimbusLookAndFeel nb = new NimbusLookAndFeel();
jTable1.putClientProperty("Windows.Overrides",nb.getDefaults());
jTable1.putClientProperty("Windows.Overrides.InheritDefaults",false);

Ответы [ 3 ]

1 голос
/ 11 декабря 2011

Вы можете ссылаться на приведенный ниже URL-адрес для всех значений по умолчанию пользовательского интерфейса для внешнего вида нимба

http://jasperpotts.com/blogfiles/nimbusdefaults/nimbus.html

Перейти к разделу таблицы и использовать все эти значения по умолчанию для конкретного пользовательского интерфейса компонента таблицы вваше приложение.Это должно помочь вам.

1 голос
/ 11 декабря 2011

Если вы хотите применить Nimbus L & F к кнопке, вам просто нужно выяснить, какой класс отвечает за рендеринг кнопок Nimbus. Процесс такой же, как если бы вы хотели применить свой собственный пользовательский L & F, где вы устанавливаете свой собственный класс пользовательского интерфейса для кнопки.

0 голосов
/ 12 декабря 2011

Один трюк, который вы могли бы сделать, это создать фиктивное приложение, которое использует внешний вид Nimbus, создать JTable и сделать что-то вроде

System.out.println (myTable.getUI ().getClass ().getName ());

В этот момент вы будете знать, какой объект пользовательского интерфейса являетсяиспользуется для визуализации JTable при использовании Nimbus LAF.Вы можете использовать это имя класса при вызове setUI (TableUI) на вашем JTable:

myTable.setUI (new ui_manager_class_name ());

Как уже говорили другие, мы вряд ли это рекомендуем.LAF обычно предназначены для использования как целая упаковка, а не как смесь 2-3 LAF.Другим выходом может быть использование MultiLookAndFeel, но я никогда не использовал его, поэтому я не уверен, что он действительно отвечает вашим потребностям.Вы должны прочитать соответствующее руководство , если хотите правильно его использовать.

...