Я пытаюсь рисовать внутри своего JPanel, но каждый раз, когда я нажимаю, фон моего JPanel исчезает. Он рисует линию, где находится мышь. Я думаю, что это имеет какое-то отношение к 2D-графике. Может кто-нибудь помочь?Swing - цвет фона JPanel исчезает
public Brush() {
addMouseListener(this);
addMouseMotionListener(this);
setBackground(Color.white);
}
@Override
public void paintComponent(Graphics g) {
Graphics2D g2;
// super.paintComponent(g);
g2 = (Graphics2D) g;
g2.setColor(brushColor);
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g2.setStroke(new BasicStroke(8, BasicStroke.CAP_ROUND, BasicStroke.JOIN_BEVEL));
//Ellipse2D.Double circle = new Ellipse2D.Double(p1.x,p1.y,20,20);
g2.fillOval(p1.x,p1.y,20,20);
}
@Override
public void mousePressed(MouseEvent e) {
dragging = true;
p1 = e.getPoint();
repaint();
}
@Override
public void mouseReleased(MouseEvent e) {
dragging = false;
p1 = e.getPoint();
repaint();
}
@Override
public void mouseDragged(MouseEvent e) {
if (dragging) {
p1 = e.getPoint();
repaint();
}
}
Но когда я это делаю, вычерченные овалы исчезают? –
@RafVandelaer: вы ошибаетесь. См. Править. –
Я не понимаю, у вас есть пример? Я также хочу, чтобы точки были нарисованы напрямую, поэтому не после того, как вы отпустили кнопку мыши –