public interface UIResource
ComponentUI.installUI() и ComponentUI.uninstallUI() методы могут использовать этот интерфейс, чтобы решить, было ли значение свойств переопределено. Например, JList cellRenderer свойство инициализируется BasicListUI.installUI (), только если это - начальное значение, нуль:
if (list.getCellRenderer() == null) {
list.setCellRenderer((ListCellRenderer)(UIManager.get("List.cellRenderer")));
}
В uninstallUI () время мы сбрасываем свойство к нулю, если его значение является экземпляром UIResource:
if (list.getCellRenderer() instanceof UIResource) {
list.setCellRenderer(null);
}
Этот образец применяется ко всем свойствам кроме java.awt. Компонентный шрифт свойств, передний план, и фон. Если одно из этих свойств не инициализируется, или, явно устанавливают в NULL, его контейнер обеспечивает значение. По этой причине "== null" ненадежно, когда к installUI () призывают, динамически изменяют компонентный стиль. Так в installUI () время мы проверяем, чтобы видеть, является ли текущая стоимость UIResource:
if (!(list.getFont() instanceof UIResource)) {
list.setFont(UIManager.getFont("List.font"));
}
ComponentUI
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92