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