Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.11.2011, 14:46   #1
kir_rik
Пользователь
 
Аватар для kir_rik
 
Регистрация: 29.03.2010
Сообщений: 21
По умолчанию Слушатель мышки и Graphics g

Хочу рисовать линии из начала координат в место клика мышью. Клик обрабатывается, о чем в консоль исправно поступают сообщения, но линии не отрисовываются.
Код:
public class Paint extends Frame{
    Paint(String s) { 
        super(s);
        setBounds(0, 0, 500, 400); 
        setVisible(true);
    }
    
    @Override
    public void paint(Graphics g){
        g.setColor(Color.black);
        this.addMouseListener(new CustomListener(g));
    }
    
    
    public class CustomListener implements MouseListener {
            Graphics tmp;
            CustomListener(Graphics g){
                tmp=g;
            }
            @Override
            public void mouseClicked(MouseEvent e) {
                        System.out.println(e.getX()+ " " + e.getY());
                        tmp.drawLine(0, 0, e.getX(), e.getY());
                        }
             //остальные методы
          }
}
P.S.в принципе любые попытки что либо рисовать из слушателя не проходят. Из метода paint все отрисовывается корректно
kir_rik вне форума Ответить с цитированием
Старый 09.11.2011, 20:55   #2
it-webwork
Пользователь
 
Регистрация: 02.11.2011
Сообщений: 29
По умолчанию

Код:
 @Override
    public void paint(Graphics g){
        g.setColor(Color.black);
        this.addMouseListener(new CustomListener(g)); // вместо g надо передавать getGraphics()
    }
Я думаю зря ты объявляешь слушатель в этом методе... Он должен объявляться только один раз, а не при каждом вызове функции public void paint(Graphics g){
it-webwork вне форума Ответить с цитированием
Старый 10.11.2011, 08:30   #3
kir_rik
Пользователь
 
Аватар для kir_rik
 
Регистрация: 29.03.2010
Сообщений: 21
По умолчанию

Премного благодарен. Кратко, четко и по делу. И все заработало. Что может быть приятней по утру?
kir_rik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
graphics.h victor5133 Помощь студентам 0 26.10.2011 19:25
<graphics.h> Ислам Помощь студентам 4 28.06.2011 09:31
Intel HD Graphics mopcik Компьютерное железо 11 16.11.2010 15:19
graphics.h C++ ROD Помощь студентам 3 21.12.2008 20:09
Форма-Добавить объект-Назначить слушатель события tolikman Microsoft Office Excel 6 10.09.2008 16:18