Я хочу создать простую программу для рисования;
Здесь я события моей мыши mousePressed и mouseDragged:
private void mousePressed(java.awt.event.MouseEvent evt) {
touch = evt.getPoint();
pressed = true;
}
private void mouseDragged(java.awt.event.MouseEvent evt) {
Point p = evt.getPoint();
if(pressed){
graphics2D.drawLine(touch.x, touch.y, p.x, p.y);
}
repaint();
}
Но когда я пытаюсь нарисовать что-то, в этой строке всегда получается "Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException"
graphics2D.drawLine(touch.x, touch.y, p.x, p.y);
Я также переопределил метод paintComponent
public void paintComponent(Graphics g){
if(image == null){
image = createImage(getSize().width, getSize().height);
graphics2D = (Graphics2D)image.getGraphics();
graphics2D.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
clear();
}
g.drawImage(image, 0, 0, null);
}
И я ясный метод:
public void clear(){
graphics2D.setPaint(Color.white);
graphics2D.fillRect(0, 0, getSize().width, getSize().height);
graphics2D.setPaint(Color.black);
repaint();
}
Что мне делать?
Спасибо