Spec-Zone .ru
спецификации, руководства, описания, API
|
Используйте JColorChooser
class, чтобы позволить пользователям выбрать из палитры цветов. Цветной селектор является компонентом, который можно поместить куда угодно в пределах Вашего GUI программы. JColorChooser
API также облегчает переводить диалоговое окно в рабочее состояние (модальный или не), который содержит цветного селектора.
Вот изображение приложения, которое использует цветного селектора, чтобы установить цвет текста в баннере:
Реализация JColorChooser
был улучшен в JDK 7. Если Вы выполните пример, используя JDK 6 или ранее, то Вы будете видеть более простой цветной компонент селектора.
Исходный код для программы находится в ColorChooserDemo.java
.
Цветной селектор состоит из всего в пределах маркированного поля, Выбирают Цвет текста. Это - то, на что стандартный цветной селектор похож во Взгляде Java & Чувстве. Это содержит две части, снабженную вкладками область и панель предварительного просмотра. Три вкладки в снабженной вкладками области выбирают панели селектора. Панель предварительного просмотра ниже снабженной вкладками области выводит на экран в настоящий момент выбранный цвет.
Вот код от примера, который создает a JColorChooser
экземпляр и добавляет это к контейнеру:
public class ColorChooserDemo extends JPanel ... { public ColorChooserDemo() { super(new BorderLayout()); banner = new JLabel("Welcome to the Tutorial Zone!", JLabel.CENTER); banner.setForeground(Color.yellow); . . . tcc = new JColorChooser(banner.getForeground()); . . . add(tcc, BorderLayout.PAGE_END); }
JColorChooser
конструктор в предыдущем фрагменте кода берет a Color
параметр, который определяет первоначально выбранный цвет селектора. Если Вы не определяете начальный цвет, то цветной селектор выводит на экран Color.white
. См. Color
Документация API для списка цветных констант можно использовать.
Цветной селектор использует экземпляр
ColorSelectionModel
tcc.getSelectionModel().addChangeListener(this); . . . public void stateChanged(ChangeEvent e) { Color newColor = tcc.getColor(); banner.setForeground(newColor); }
См., Как Записать Слушателю Изменения для общей информации о слушателях изменения и событиях изменения.
Основной цветной селектор, как тот, используемый в примере программы, достаточен для многих программ. Однако, цветной API селектора позволяет Вам настраивать цветного селектора если это с панелью предварительного просмотра Вашего собственного проекта, добавляя Ваши собственные панели селектора к этому, или удаляя существующие панели селектора от цветного селектора. Дополнительно, JColorChooser
class обеспечивает два метода, которые облегчают использовать цветного селектора в пределах диалогового окна.
Остальная часть этого раздела обсуждает эти темы:
Теперь давайте обращать наше внимание к ColorChooserDemo2, измененной версии предыдущей демонстрационной программы, которая использует больше JColorChooser
API.
Вот изображение ColorChooserDemo2:
Эта программа настраивает селектора цвета текста баннера этими способами:
Удаление или Замена Панели Предварительного просмотра покрывают первую настройку. Создание Пользовательской Панели Селектора обсуждает последние два.
Эта программа также добавляет кнопку, которая переводит цветного селектора в рабочее состояние в диалоговом окне, которое можно использовать, чтобы установить цвет фона баннера.
JColorChooser
class обеспечивает два метода class, чтобы облегчить использовать цветного селектора в диалоговом окне. ColorChooserDemo2 использует один из этих методов, showDialog
, вывести на экран селектора цвета фона, когда пользователь щелкает по Выставочному Селектору Цвета... кнопка. Вот одна строка кода от примера, который переводит селектора цвета фона в рабочее состояние в диалоговом окне:
Color newColor = JColorChooser.showDialog( ColorChooserDemo2.this, "Choose Background Color", banner.getBackground());
Первым параметром является родитель для диалогового окна, вторым является диалоговый title, и третьим является первоначально выбранный цвет.
Диалоговое окно исчезает при трех условиях: пользователь выбирает цвет и щелкает по кнопке OK, пользователь отменяет работу с кнопкой Cancel, или пользователь отклоняет диалоговое окно с управлением кадром. Если пользователь выбирает цвет, showDialog
метод возвращает новый цвет. Если пользователь отменяет работу или отклоняет окно, возвраты метода null
. Вот код от примера, который обновляет цвет фона баннера согласно значению, возвращенному showDialog
:
if (newColor != null) { banner.setBackground(newColor); }
Диалоговое окно, создаваемое showDialog
модально. Если Вы хотите немодальное диалоговое окно, можно использовать JColorChooser
's createDialog
метод, чтобы создать диалоговое окно. Этот метод также позволяет Вам определять слушателей действия для OK и кнопок Cancel в диалоговом окне. Использовать JDialog
's show
метод, чтобы вывести на экран диалоговое окно, создаваемое этим методом. Для примера, который использует этот метод, см. Определение Других Редакторов в, Как Использовать Табличный раздел.
По умолчанию цветной селектор выводит на экран панель предварительного просмотра. ColorChooserDemo2 удаляет панель предварительного просмотра селектора цвета текста с этой строкой кода:
tcc.setPreviewPanel(new JPanel());
Это эффективно удаляет панель предварительного просмотра потому что плоскость JPanel
не имеет никакого размера и никакого представления значения по умолчанию. Чтобы задержать панель предварительного просмотра к значению по умолчанию, использовать null
как параметр setPreviewPanel
.
Чтобы обеспечить пользовательскую панель предварительного просмотра, Вы также используете setPreviewPanel
. Компонент, который Вы передаете в метод, должен наследоваться от JComponent
, определите разумный размер, и обеспечьте специализированное представление текущего цвета. Чтобы быть уведомленной, когда пользователь изменяет цвет в цветном селекторе, панель предварительного просмотра должна зарегистрироваться как слушатель изменения на цветной модели выбора цветного селектора как описано ранее.
Селектор цвета по умолчанию обеспечивает пять панелей селектора:
Можно расширить селектора цвета по умолчанию, добавляя панели селектора Вашего собственного проекта с addChooserPanel
, или можно ограничить это, удаляя панели селектора с removeChooserPanel
.
Если Вы хотите удалить все панели селектора значения по умолчанию и добавить один или более собственный, можно сделать это с единственным звонком setChooserPanels
. ColorChooserDemo2 использует этот метод, чтобы заменить панели селектора значения по умолчанию экземпляром CrayonPanel
, пользовательская панель селектора. Вот звонок setChooserPanels
от того примера:
//Override the chooser panels with our own. AbstractColorChooserPanel panels[] = { new CrayonPanel() }; tcc.setChooserPanels(panels);
Код является straighforward: это создает массив, содержащий CrayonPanel
. Затем вызовы кода setChooserPanels
установить содержание массива как панели селектора цветного селектора.
CrayonPanel
подкласс AbstractColorChooserPanel
и переопределяет пять абстрактных методов, определенных в его суперклассе:
void buildChooser()
void updateChooser()
public void updateChooser() { Color color = getColorFromModel(); if (Color.red.equals(color)) { redCrayon.setSelected(true); } else if (Color.yellow.equals(color)) { yellowCrayon.setSelected(true); } else if (Color.green.equals(color)) { greenCrayon.setSelected(true); } else if (Color.blue.equals(color)) { blueCrayon.setSelected(true); } }
String getDisplayName()
getDisplayName
метод: public String getDisplayName() { return "Crayons"; }
Icon getSmallDisplayIcon()
null
.Icon getLargeDisplayIcon()
null
.
Следующие таблицы приводят обычно используемый JColorChooser
конструкторы и методы. Другие методы, которые Вы могли бы вызвать, перечисляются в таблицах API в Классе JComponent. API для того, чтобы использовать цветных селекторов попадает в эти категории:
Метод или Конструктор | Цель |
---|---|
|
Создайте цветного селектора. Конструктор по умолчанию создает цветного селектора с начальным цветом Color.white . Используйте второго конструктора, чтобы определить различный начальный цвет. ColorSelectionModel параметр, когда существующий, предоставляет цветному селектору цветную модель выбора. |
|
Создайте и покажите цветному селектору в модальном диалоговом окне. Component параметром является родитель диалогового окна, String параметр определяет диалоговый title, и Color параметр определяет начальный цвет селектора. |
булев, JColorChooser, ActionListener, ActionListener) |
Создайте диалоговое окно для указанного цветного селектора. Как с showDialog , Component параметром является родитель диалогового окна и String параметр определяет диалоговый title. Другие параметры следующие: boolean определяет, модально ли диалоговое окно, JColorChooser цветной селектор, чтобы вывести на экран в диалоговом окне, первом ActionListener для кнопки OK, и второе для кнопки Cancel. |
Метод | Цель |
---|---|
|
Набор или использовал компонент, чтобы предварительно просмотреть цветной выбор. Чтобы удалить панель предварительного просмотра, использовать new JPanel() как параметр. Чтобы определить панель предварительного просмотра значения по умолчанию, использовать null . |
|
Набор или получает панели селектора в цветном селекторе. |
|
Добавьте панель селектора к цветному селектору или удалите панель селектора из этого. |
|
Набор или добирается dragEnabled свойство, которое должно быть истиной, чтобы включить, перетаскивает обработку на этом компоненте. Значение по умолчанию является ложью. См. |
Метод | Цель |
---|---|
освободите setColor (Цвет) |
Набор или получает в настоящий момент выбранный цвет. Три целочисленных версии setColor метод интерпретирует эти три целых числа вместе как цвет RGB. Единственная целочисленная версия setColor метод делит целое число на четыре 8-разрядных байта и интерпретирует целое число как цвет RGB следующим образом: |
|
Набор или получает модель выбора для цветного селектора. Этот объект содержит текущий выбор и запускает события изменения в зарегистрированных слушателей всякий раз, когда выбор изменяется. |
Эта таблица показывает примеры то использование JColorChooser
и где те примеры описываются.
Пример | Где Описано | Примечания |
---|---|---|
ColorChooserDemo | Этот раздел | Использует стандартного цветного селектора. |
ColorChooserDemo2 | Этот раздел | Использование один специализированный цветной селектор и один стандартный цветной селектор в диалоговом окне, создаваемом с showDialog . |
TableDialogEditDemo | Как Использовать Таблицы | Шоу, как использовать цветного селектора в качестве пользовательского редактора ячейки в таблице. Цветной селектор, используемый этим примером, создается с createDialog . |
|
Введение в DnD | Использует цветного селектора, который не находится в диалоговом окне; демонстрирует значение по умолчанию возможности перетаскивать-и-отбрасывать компонентов Swing, включая цветных селекторов. |