JavaRush /Java блог /Random /JavaSwing работа с мышью
Arslonbek Erkinov
34 уровень

JavaSwing работа с мышью

Статья из группы Random
Впрочем, начинающему программисту это обновление покажется не таким уж маленьким. Не бойтесь! Все темы, представленные в этом примере, будут под- робнее изложены. А пока поэкспериментируйте с нашим очередным примером; он поможет вам увереннее создавать и запускать програм- мы Java, даже если вы еще не до конца освоились с содержащимся в них кодом. Мы назовем этот пример HelloJava2, чтобы не создавать лишней путаницы в попытках Основные изменения — это расширение функциональности класса HelloComponent и его переименование с целью из- бежать конфликтов имен (HelloComponent2, HelloComponent3). Вы уже видели, как работает наследование, и у вас может появиться вопрос: не лучше ли создать субкласс класса HelloComponent и воспользоваться наследованием, чтобы напи- сать новый пример на базе существующего и расширить его функциональность? Нет, в данном случае это не принесло бы пользы, а для наглядности мы просто напишем класс заново. Приложение HelloJava2:

import javax.swing.*;
import java.awt.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionListener;

public class Main {
    public static void main(String[] args) {
       JFrame frame = new JFrame("HelloComponent");
       frame.add(new HelloComponent2("Hello JavaSwing!"));
       frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       frame.setSize(400,400);
       frame.setVisible(true);
    }
}

class HelloComponent2 extends JComponent implements MouseMotionListener {
    String TheMessage;
    int messageX = 125, messageY = 95;

    public HelloComponent2 (String message) {
        TheMessage = message;
        addMouseMotionListener(this);
    }

    public void paintComponent (Graphics graphics) {
        graphics.drawString(TheMessage, messageX, messageY);
    }

    public void mouseDragged(MouseEvent event) {
        messageX = event.getX();
        messageY = event.getY();
        repaint();
    }

    public void mouseMoved(MouseEvent e){}
}
Ссылка на видео
Комментарии
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ