| Виды программирования, программирование, языки программирования, книги программирование | На сайте представлена информация про программирование в Интернете и работу |
|
Дайте Джаве свободу!, Открытое письмо в Sun (Компьютерра) javax.swing.JList, Помогите составить модель... :( java.util.LinkedList() сортировка... Вопрос не в тему Диалоговое окно в середине программы Help regexp в Jave, Мне нада не вогруг а внутри выражения JBOSS, проблемы с установкой.... Очистка поля при повторном вызове диалогового окна Получить значение любой системной переменной ОС Apache1.3+Tomcat324 через mod_jk Ajp13, Apache1.3+Tomcat324 через mod_jk Ajp13 По поводу wait(), notify(), вопрос RMI проблема с jsdk1.5 + IntelliJIDE Перспективные разработки от Sun на Java, Компьюлента: кадр дня C# это Java?, MS списал у Sun? Как Вы относитесь к курящим девушкам? Прежде чем задать вопрос, прочтите это! Документация и книги по Java, Давайте соберём ссылки работа с таймером..., реализация таймаутов чтения/записи в сок Таймер Событие срочно нужен JDBC драйвер для DBF, поделитесь если у кого-нить есть BeanBox Парсинг русского XML, Кодировка Java Cards, поиск Сгенерировать системное событие.., желательно без JNI.. Проблема с Cloneable getCmpStatus -> setCmpStatus, Где я мог ошибиться? Как присвоить каждое сообытие свою иконку в jTree Установка JBuilder5, Не могу установить: ошибка JVM ругается на ntdll Строка инициализации для конт. меню в дереве Обмен данными между приложениями Что такое Ant и зачем он нужен?, не разу не нужен был, просто интересно Модальное окно.., как?.. Файлы .jar .NET vs Java: Что перспективнее для web-разработок Forte, Вопрос по editor-у JCheckBox, vopros Формат типа double для Java, не совпадает с форматом double в Pascalе Крестики-нолики, Развлечение для javaпрограммеров Какая среда разработки для... Как изменить элементы в JComboBox В чем плюсы Java 2 ? java-xml-dtd, java-xml-dtd Зашифровать строку, RSA Где можно почитать о регулярных выражениях? Ftp Client Скрытие IP-адресса Как обойти такую проблему?, Проверка и автопереход курсора overrideRedirect, что за зверь? Классы в разных файлах или в одном? Вызов метода объекта из вложенного объекта Универсальный клиент., Помогите советом. MouseListener, Запутался в событиях Можно ли создать картинку на основе потока? Установка ASE12.5 проблема с JRE во время установ Проблемы с Tomcat Новые технологии в Java Инсталяция Ant Очистка поля в диалоговом окне! запрет вставки в качестве первого символа '0' Остановить поток Остановка потока Как Вы относитесь к курящим девушкам? Прежде чем задать вопрос, прочтите это! Документация и книги по Java, Давайте соберём ссылки Что содержат файлы .ipr and .iml?, В IDEA JNode операционная система на Java!, еще одна попытка Свойства Button Как обновить дерево (jTree)? |
Платные хостинги Раскрутка сайта Книги по программированию Как присвоить каждое сообытие свою иконку в jTree
- Как присвоить каждое сообытие свою иконку в jTree?Например имеется 2 операции в конт.меню для какого то элемента в jTree:То есть нажал на Start - иконка стала зеленой ( то есть активной), нажали на Stop - стала красной ( Не активна)Код private void jTree1ValueChanged(javax.swing.event.TreeSelectionEvent evt) { DefaultTreeModel model = (DefaultTreeModel)jTree1.getModel(); DefaultMutableTreeNode node = (DefaultMutableTreeNode) jTree1.getLastSelectedPathComponent(); m_popup = new JPopupMenu(); if (rootNode == null) return; Object object = node.getUserObject();if ( object instanceof AggregP ) { m_popup = new JPopupMenu(); m_popup.add(new AbstractAction("Start") { public void actionPerformed(ActionEvent e) { ??? // передача сообытий для изминения иконки, если не соответвует выбранному статусу иконки или отмена } }); m_popup.add(new AbstractAction("Stop") { public void actionPerformed(ActionEvent e) { ??? // передача сообытий для изминения иконки, если не соответвует выбранному статусу иконки или отмена } }); jTree1.add(m_popup); } highlightSyntax('javayZWRiN','java');Если для иконок в jTree имеется такого рода код:Код private class MyIconTree extends DefaultTreeCellRenderer { ImageIcon Aggreg_activ; ImageIcon Aggreg_no_activ; public MyIconTree() { Aggreg_activ = new javax.swing.ImageIcon(getClass().getResource("/images/green_a.gif")); // активная Aggreg_no_activ = new javax.swing.ImageIcon(getClass().getResource("/images/red_a.gif")); // не активная } public Component getTreeCellRendererComponent( JTree tree, Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus) { Component result = super.getTreeCellRendererComponent(tree, value, selected, expanded, leaf, row, hasFocus); DefaultMutableTreeNode node = (DefaultMutableTreeNode)value; Object object = node.getUserObject(); setText(object.toString()); if(object instanceof AggregP){ setIcon(Aggreg_no_activ); //по умолчанию не активная } return result; } }highlightSyntax('javajBhZGI3','java'); - getTreeCellRendererComponent вызывается каждый раз при перерисовкеузла дерева, поэтому в объкт AggregP необходимо определить полеboolean active и в указанном выше методе проверять данное поле и установливать соответствующее изображение. Кроме этого при выборе элемента в PopupMenu необходимо изменить active и вызвать перерисовку данного узла - Попробовал твой метод и запутался окончательнос c boolean active! :{ Хотя твои мысли я понял...... - У меня что-то не получается - может я где-то ошибся ?Помогите плиззззззз Код private class MyIconTree extends DefaultTreeCellRenderer { ImageIcon Aggreg_activ; ImageIcon Aggreg_no_activ; public MyIconTree() { Aggreg_activ = new javax.swing.ImageIcon(getClass().getResource("/images/green_a.gif")); Aggreg_no_activ = new javax.swing.ImageIcon(getClass().getResource("/images/red_a.gif")); } public Component getTreeCellRendererComponent( JTree tree, Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus) { Component result = super.getTreeCellRendererComponent(tree, value, selected, expanded, leaf, row, hasFocus); DefaultMutableTreeNode node = (DefaultMutableTreeNode)value; MyTreeNode obj=(MyTreeNode)node.getUserObject(); setText(obj.toString()); if(obj instanceof AggregP){ if(obj.getCmpStatus() == 1){ setIcon(Aggreg_activ); }else{ setIcon(Aggreg_no_activ); } } return result; } }highlightSyntax('javaE0M2Mz','java');и второй код реагирующая на нажати кнопокй мышки на конт.меню...Код private void jTree1ValueChanged(javax.swing.event.TreeSelectionEvent evt) { DefaultTreeModel model = (DefaultTreeModel)jTree1.getModel(); DefaultMutableTreeNode node = (DefaultMutableTreeNode) jTree1.getLastSelectedPathComponent(); m_popup = new JPopupMenu(); if (rootNode == null) return; MyTreeNode aggP= (MyTreeNode) object;if ( object instanceof AggregP ) { m_popup = new JPopupMenu(); m_popup.add(new AbstractAction("Start") { public void actionPerformed(ActionEvent e) { aggP.setCmpStatus(1); } }); m_popup.add(new AbstractAction("Stop") { public void actionPerformed(ActionEvent e) { aggP.setCmpStatus(0); } }); jTree1.add(m_popup); }highlightSyntax('java4M2U4Mj','java');Проблемы в aggP.setCmpStatus(1);Сам конструктор MyTreeNode выглядит так:Код public class MyTreeNode extends Object { public void setActive(boolean act_ok) { active = act_ok; } public boolean isActive() { return active; } public void setCmpStatus(int s){ status=s; } public int getCmpStatus(){ return status; } private boolean active; protected int status;}highlightSyntax('javaDc0N2Q=','java');Thanks! Это сообщение отредактировал XClan - 5.2.2004, 15:53 |