Я изучаю java awt и swing libs.В этой программе я пытаюсь эмулировать карандашный инструмент из MSPaint. Он отлично работает, когда я занимаюсь программированием в одном классе, однако не работает, когда я использую Outer Класс для прослушивания моих движений мыши. Я предполагаю, что мне не удается получить объект приложения Graphics, пожалуйста, сообщите мне, где я ошибаюсь. Спасибо!
Вот код
import java.awt.event.*;
import javax.swing.*;
import java.awt.*;
public class Paint extends Canvas {
Paint() {
Outer obj=new Outer(this);
JFrame frame=new JFrame("Paint");
frame.setSize(400,400);
frame.add(this);
frame.addMouseMotionListener(obj);
frame.setVisible(true);
}
public static void main(String[] args) {
new Paint();
}
}
class Outer implements MouseMotionListener {
static int x,y,x1,y1;
Paint ob;
Outer(Paint ob) {
this.ob=ob;
}
public void mouseDragged(MouseEvent me) {
Graphics g=ob.getGraphics();
x1=me.getX();
y1=me.getY();
_paint_(g,x,y,x1,y1);
x=x1;
y=y1;
}
public void _paint_(Graphics g,int x,int y,int x1,int y1) {
g.drawLine(x,y,x1,y1);
}
public void mouseMoved(MouseEvent me) {
y=me.getY();
x=me.getX();
}
}
By не работает, я имею в виду, что рамка появляется, но «карандашный инструмент» не рисует линии