Впрочем, начинающему программисту это обновление покажется не таким уж
маленьким. Не бойтесь! Все темы, представленные в этом примере, будут под-
робнее изложены. А пока поэкспериментируйте с нашим
очередным примером; он поможет вам увереннее создавать и запускать програм-
мы 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){}
}
Ссылка на видео
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ