Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> mouseenter для скрытого компонента, выбор компонента находящегося под другим 
V
    Опции темы
clanda
  Дата 1.12.2009, 05:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 22.8.2008

Репутация: нет
Всего: 1



Доброго времени суток!
есть проблема - на панели находится множество объектов, расположение которых задано в каком-то описании. у каждого из объектов есть набор определенных свойств (возможность выбора, координаты расположения, цвета..... и т.д.) сами объекты расширены от JComponent.
Вопрос заключается в том, что если несколько объектов находятся друг над другом, и нижний из копонентов можно выбрать, то верхний компонент не дает это сделать перекрывая собой, а в свою очередь если поменять их местами, то он будет не виден. Каким образом можно получить объект, лежащий под другим?
пробовал делать невидимым объект вот так, но не получается ничего
Код

public void mouseEntered(MouseEvent arg0){
    if (isSelectable()){ 
        setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
    } else {
        setVisible(false);
        getParent().repaint();
        Component c = getParent().getComponentAt(arg0.getX()+(int)HorizontalPosition, arg0.getY() + (int)VerticalPosition); 
        if (c instanceof BasicObject){
            ((MouseListener)c).mouseEntered(arg0);
        }
        setVisible(true);
        getParent().repaint();
    }
     movingOver = true;
     repaint();
}

public void mouseExited(MouseEvent arg0){
    if (isSelectable()){
        setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
    } else {
        setVisible(false);
        getParent().repaint();
        Component c = getParent().getComponentAt(arg0.getX()+(int)HorizontalPosition, arg0.getY() + (int)VerticalPosition); 
        if (c instanceof BasicObject){
            ((MouseListener)c).mouseExited(arg0);
        }
        setVisible(true);
    }
    movingOver = false;
    repaint();
}


PM MAIL   Вверх
clanda
Дата 3.12.2009, 04:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 22.8.2008

Репутация: нет
Всего: 1



вопрос снимается - сделал так:
Код

public void mouseEntered(MouseEvent arg0){
    if (isSelectable()){ 
        setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
    } else {
        setVisible(false);
        setVisible(true);
    }
     movingOver = true;
     repaint();
}

public void mouseExited(MouseEvent arg0){
    if (isSelectable()){
        setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
    }
    movingOver = false;
    repaint();
}

все работает!!! =)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   jk1
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема »


 




[ Время генерации скрипта: 0.0617 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.