Hi,
ich hab mal versucht ein Malprogramm zu schreiben, doch hab ich ein paar Probleme mit dem zeichnen ;(
Das ist mein Zeichenpanel, das Problem ist wenn ich jetzt in meinem "eigentlichen"Editor in einem Colorchooser die Farbe verändere, ändert sich die Farbe von allem vorher gemalten...Logisch
Wie kann ich dies ändern??
Außerdem wenn ich die Maus drücke und male und dann los lasse, woanders hinbewege, wieder drücke, verbindet es zum vorher gemalten ;(
Dies ist natürlich auch unerwünscht.
In meinem Editor verwende ich, in der Mitte, eine JSplitPane, auf der rechten seite habe ich ein JPanel, welches dann das Zeichenpanel added. Oben halt noch ToolBar mit Werkzeugen, Strichstärken,
Farben und MenuBar mit File, Edit...
ich hab mal versucht ein Malprogramm zu schreiben, doch hab ich ein paar Probleme mit dem zeichnen ;(
Java:
package paint;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class ZeichenPanel extends JPanel{
private int[]x,y;
private int n,Xsize,Ysize;
private float stroke;
private Color color;
public ZeichenPanel(int Xvalue,int Yvalue){ //Konstruktor
n=0;
x=new int[100000];
y=new int [100000];
color=Color.black;
stroke=2.0f;
setSize(Xvalue,Yvalue);
Xsize=this.getWidth();
Ysize=this.getHeight();
this.addMouseMotionListener(new ClickBearbeiter());
}
//Überschreibung der methode paintComponent
public void paintComponent(Graphics g){
super.paintComponent(g);
Graphics2D gd=(Graphics2D)g.create();
gd.setColor(Color.WHITE);
gd.fillRect(0, 0, Xsize,Ysize);
gd.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
gd.setStroke(new BasicStroke(stroke));
gd.setColor(color);
gd.drawPolyline(x,y,n);
gd.dispose();
}
public void setStroke(int value){
stroke=(float)value;
repaint();
}
public void setColor(Color c){
color=c;
repaint();
}
class ClickBearbeiter extends MouseMotionAdapter{
public void mouseDragged(MouseEvent e){
x[n]=e.getX();
y[n]=e.getY();
repaint();
n++;
}
}
}
Wie kann ich dies ändern??
Außerdem wenn ich die Maus drücke und male und dann los lasse, woanders hinbewege, wieder drücke, verbindet es zum vorher gemalten ;(
Dies ist natürlich auch unerwünscht.
In meinem Editor verwende ich, in der Mitte, eine JSplitPane, auf der rechten seite habe ich ein JPanel, welches dann das Zeichenpanel added. Oben halt noch ToolBar mit Werkzeugen, Strichstärken,
Farben und MenuBar mit File, Edit...