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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.07.2013, 18:30   #1
x_Alex_x
Пользователь
 
Регистрация: 13.01.2013
Сообщений: 94
По умолчанию Не работает MouseListener

Вот такой
Код:
public class Painter extends Canvas{
    private ArrayList<Curve> curves;
    public Painter(){
        curves = new ArrayList<>(0);
        
        this.addMouseListener(new MouseAdapter() {
            public void MousePressed(MouseEvent e) {
                System.out.println("pressed");
                curves.add(new Curve(....));
                repaint(); //НУЖНО ЛИ?
            }
        });
    }
}
При нажатии мыши в области Painter'а ничего не происходит( Подскажите в чём здесь ошибка?
x_Alex_x вне форума Ответить с цитированием
Старый 27.07.2013, 18:16   #2
darknim
Пользователь
 
Регистрация: 14.12.2012
Сообщений: 36
По умолчанию

Цитата:
Сообщение от x_Alex_x Посмотреть сообщение
Вот такой
Код:
public class Painter extends Canvas{
    private ArrayList<Curve> curves;
    public Painter(){
        curves = new ArrayList<>(0);
        
        this.addMouseListener(new MouseAdapter() {
            public void MousePressed(MouseEvent e) {
                System.out.println("pressed");
                curves.add(new Curve(....));
                repaint(); //НУЖНО ЛИ?
            }
        });
    }
}
При нажатии мыши в области Painter'а ничего не происходит( Подскажите в чём здесь ошибка?
Может потому что на Painter у тебя что то лежит и полностью перекрывает его?
darknim вне форума Ответить с цитированием
Старый 27.07.2013, 20:39   #3
x_Alex_x
Пользователь
 
Регистрация: 13.01.2013
Сообщений: 94
По умолчанию

Только эти две строки есть:
pr = new Painter();
this.add("Center", pr);

Есть пример с созданием отдельного класса для ActionListener, который привязан на кнопки и, как вариант можно то же самое сделать и с MouseListener. Если больше вариантов нет, то переделаю.
x_Alex_x вне форума Ответить с цитированием
Старый 27.07.2013, 23:22   #4
darknim
Пользователь
 
Регистрация: 14.12.2012
Сообщений: 36
По умолчанию

Цитата:
Сообщение от x_Alex_x Посмотреть сообщение
Только эти две строки есть:
pr = new Painter();
this.add("Center", pr);

Есть пример с созданием отдельного класса для ActionListener, который привязан на кнопки и, как вариант можно то же самое сделать и с MouseListener. Если больше вариантов нет, то переделаю.
Я проверил на JPanel повесить это. У меня сработало.
darknim вне форума Ответить с цитированием
Старый 28.07.2013, 15:25   #5
x_Alex_x
Пользователь
 
Регистрация: 13.01.2013
Сообщений: 94
По умолчанию

Не получается у меня переделать по тому примеру((
Вот код, в котором создаю экземпляр Painter'а:
Код:
public class BezierCurve extends JFrame {
    private Painter pr;
    
    public  BezierCurve() { // Конструктор
        final int WIDTH_MAIN_WINDIW = 800;
        final int HEIGHT_MAIN_WINDIW = 600;
        final String TITLE = "Кривые Безье";
        final int NUM_TB_BUTTONS = 2;
        
        this.setSize(WIDTH_MAIN_WINDIW, HEIGHT_MAIN_WINDIW);
        this.setTitle(TITLE);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setLocationRelativeTo(null);
        
        pr = new Painter();
        this.add("Center", pr);
    }

    public static void main(String[] args) {
        BezierCurve bezierCurve = new BezierCurve();
        bezierCurve.setVisible(true);
    }
}
Может поможет увидеть ошибку. Если нет - подскажите как переделать с JPanel
x_Alex_x вне форума Ответить с цитированием
Старый 29.07.2013, 01:06   #6
darknim
Пользователь
 
Регистрация: 14.12.2012
Сообщений: 36
По умолчанию

Короче. в классе Painter сделай вот что: метод MousePressed переименую в mousePressed. И для праильности, поставь методу mousePressed аннотацию @Override . Правильно написание имен событий мыши можешь посмотреть в классе java.awt.event.MouseAdapter
darknim вне форума Ответить с цитированием
Старый 29.07.2013, 11:01   #7
x_Alex_x
Пользователь
 
Регистрация: 13.01.2013
Сообщений: 94
По умолчанию

Наконец заработало, спасибо! Ни за что бы не догадался))
x_Alex_x вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
не работает relese версия проги и debug работает тока на моем компе D][mon C# (си шарп) 2 04.05.2012 20:21
Программа работает пошагово, но не работает при запуске -Katerina- Microsoft Office Excel 3 12.07.2011 03:40
Почему программа на С++ не работает с локальным описанием массива, но работает с глобальным? >>STINGER<< Помощь студентам 4 08.03.2011 09:56
непонятка с MouseListener insan00b Общие вопросы по Java, Java SE, Kotlin 1 09.06.2010 14:57
Библиотека НЕ работает с 2008, но работает с 2000 SQL namenike Общие вопросы C/C++ 0 26.05.2009 11:04