2013-12-05 5 views
0

У меня есть собственный рендерер, который отлично работает - как я могу использовать его как «механизм рисования» для создания тех же объектов, которые он создавал бы в JList?Как использовать пользовательские результаты рендеринга JList вне JList?

+0

Я не уверен, что именно вы хотите. Можете ли вы показать какой-то код или представить пример того, как вы хотите использовать результаты рендеринга? Вы пытаетесь использовать средство визуализации для отображения компонентов в каком-либо другом компоненте (например, JPanel)? –

+0

Я бы поставил их как значки или изображения в JPanel. Это возможно? –

+0

Используйте JLabel для этого. Это в значительной степени то, за что. –

ответ

2

Если у вас есть ListCellRenderer, просто вызовите getListCellRendererComponent() с соответствующими значениями, а затем вызвать setBounds(x, y, w, h) и paint(g) на возвращаемом компоненте (который является нормальным случаем, является самим рендерером), чтобы нарисовать его так, как он был бы в списке.

+0

Спасибо, это то, что я искал. –

3

Как я могу использовать его в качестве «механизма рисования» для создания тех же объектов, которые он будет производить в JList?

AFAIK

  • Renderer только иллюзия, стоимость покраски завода Betweens хранится в XxxModel и View

  • Renderer реализован для JList (тогда для JComboBox тоже), JTree и JTable (сейчас мы можем забыть для JTreeTable и его собственных производных)

  • для отдыха Swing JComponents вы должны использовать стандартные краски, больше информации, wroking примеры кода в официальных учебных пособиях Oracle

+0

Можете ли вы рассказать об этом, пожалуйста? Я не понимаю. «Renderer - это всего лишь иллюзия, покраска фабричной стоимости betweens, хранящаяся в XxxModel и View» –

+0

Команда Swing решила, что по умолчанию компонент, отображающий его значение, хранящийся в XxxModel с помощью реализаций концепции Renderer, отображается только с помощью реализованного DefaultXxxRenderer в API-интерфейсах, вы можете переопределите этот Renderer – mKorbel

+0

@ tM--, как отметил mKobel, мы используем рендеринг-er, чтобы показать, как должна отображаться ячейка 'JList' или' JTable', передавая ему компонент: 'hi list! для более приятного просмотра, сделайте свою ячейку с данными модели так же, как этот ярлык, который я вам даю. – Sage

Смежные вопросы