Hallo,
ich hab hier eine Oberfläche erstellt zum freihändigen zeichnen. Das Zeichnen funktioniert soweit, aber leider entstehen Lücken wenn ich meine Maus schneller bewege. Was muss ich machen, damit kontinuierlich gezeichnet werden kann, wenn die Maus gedrückt wird?
Hier mein Code:
Canvas:
Frame:
ich hab hier eine Oberfläche erstellt zum freihändigen zeichnen. Das Zeichnen funktioniert soweit, aber leider entstehen Lücken wenn ich meine Maus schneller bewege. Was muss ich machen, damit kontinuierlich gezeichnet werden kann, wenn die Maus gedrückt wird?
Hier mein Code:
Canvas:
Java:
import java.awt.Canvas;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionListener;
public class PaintingArea extends Canvas {
private final static long serialVersionUID = 20L;
private int x, y;
public PaintingArea() {
setBackground(Color.LIGHT_GRAY);
setSize(550, 550);
addMouseMotionListener(new MouseMotionListener() {
public void mouseDragged(MouseEvent e) {
x = e.getX();
y = e.getY();
paint(getGraphics());
}
public void mouseMoved(MouseEvent e) {
}
});
}
public void paint(Graphics g) {
g.setColor(Color.blue);
g.drawOval(x, y, 10, 10);
g.fillOval(x, y, 10, 10);
}
}
Frame:
Java:
package aufgabe4;
import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Choice;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.Panel;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class Blackboard extends Frame {
private final static long serialVersionUID = 20L;
private Panel top, flaeche;
private Button clear, exit;
private Choice color;
private PaintingArea area;
public Blackboard() {
// Frame
super("Blackboard");
setSize(600, 600);
setLocationRelativeTo(getParent());
// Listener zum Beenden des Fensters
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
// flaeche
flaeche = new Panel();
flaeche.setLayout(new BorderLayout());
flaeche.setSize(550, 600);
add(BorderLayout.CENTER, flaeche);
// top
top = new Panel();
top.setLayout(new GridLayout(1, 3));
// color
color = new Choice();
color.add("Black");
color.add("Blue");
color.add("Cyan");
color.add("DarkGrey");
color.add("Gray");
color.add("Green");
color.add("LightGray");
color.add("Magenta");
color.add("Orange");
color.add("Pink");
color.add("Red");
color.add("White");
color.add("Yellow");
// Button
clear = new Button("clear");
exit = new Button("exit");
// add
top.add(color);
top.add(clear);
top.add(exit);
// PaintingArea
area = new PaintingArea();
// add flaeche
flaeche.add(BorderLayout.NORTH, top);
flaeche.add(BorderLayout.CENTER, area);
setVisible(true);
}
public static void main(String[] args) {
Blackboard board = new Blackboard();
}
}