also ich habe eine klasse funktions Plotter die mir alles zeichnet auf mein canvas....
also das koordinatenkreuz und die function!das klappt auch alles.
nun habe ich noch eine Klasse funktionsGUI die mir das Canvas erstellt...
nun wollte ich Punkte malen,wenn ich mit einem doppel klick auf mein Canvas zeichne und wollte sie in einem array speichern! aber irgendwie will das nicht...
also das der punkt gezeichnet wird, habe ich hin bekommen, aber ich will das der alte Punkt auf dem canvas bleibt auch wenn ein neuer punkt gezeichnet wird....
also in meiner Klasse FunktionsPlotter (kleiner ausschnitt)
mit der auskommentierten for-schleife wollte ich das ganze im array speichern, und gezwichnet wird
und in meiner Klasse Funktions GUI
das auskommentierte , was dazu gedacht, die punkte in arrays zu speichern.
also das koordinatenkreuz und die function!das klappt auch alles.
nun habe ich noch eine Klasse funktionsGUI die mir das Canvas erstellt...
nun wollte ich Punkte malen,wenn ich mit einem doppel klick auf mein Canvas zeichne und wollte sie in einem array speichern! aber irgendwie will das nicht...
also das der punkt gezeichnet wird, habe ich hin bekommen, aber ich will das der alte Punkt auf dem canvas bleibt auch wenn ein neuer punkt gezeichnet wird....
also in meiner Klasse FunktionsPlotter (kleiner ausschnitt)
Java:
FunktionPlotter(Composite parent, int style) {
super(parent, style);
// Standard einteilung
setLinkesEnde(-10);
setRechtesEnde(10);
setOberstesEnde(10);
setUnterstesEnde(-10);
addPaintListener(new PaintListener() {
@Override
public void paintControl(PaintEvent e) {
drawScala(e.gc);
drawFunction(e.gc);
drawPoint(e.gc);
}
});
}
int Py, Px;
public void drawPoint(GC gc) {
// for (int i = 0; i < plotterGUI.punktex.length; i++) {
// Px = plotterGUI.punktex[i];
// Py = plotterGUI.punktey[i];
// gc.drawPoint(Px, Py);
// }
gc.drawPoint((int)getXPunkt(), (int)getYPunkt());
}
mit der auskommentierten for-schleife wollte ich das ganze im array speichern, und gezwichnet wird
und in meiner Klasse Funktions GUI
Java:
private FunktionPlotter canvas;
/**
* Erstellt ein Canvas für den Funktionsplotter
*/
public void guiErstellt() {
//
....
canvas.addMouseListener(new MouseListener() {
//zur verschiebung des canvas
@Override
public void mouseUp(MouseEvent e) {
xPixelEnd = e.x;
yPixelEnd = e.y;
xStart = umrechnerX.f(xPixelStart);
yStart = umrechnerY.f(yPixelStart);
xEnd = umrechnerX.f(xPixelEnd);
yEnd = umrechnerY.f(yPixelEnd);
xDiff = xEnd - xStart;
yDiff = yEnd - yStart;
canvas.setLinkesEnde((int) (canvas.linkesEnde - xDiff));
canvas.setRechtesEnde((int) (canvas.rechtesEnde - xDiff));
canvas.setOberstesEnde((int) (canvas.oberstesEnde - yDiff));
canvas.setUnterstesEnde((int) (canvas.unterstesEnde - yDiff));
canvas.setXPunkt(canvas.xPunkt -xDiff);
canvas.setYPunkt(canvas.yPunkt-yDiff);
canvas.redraw();
}
@Override
public void mouseDown(MouseEvent e) {
xPixelStart = e.x;
yPixelStart = e.y;
}
@Override
public void mouseDoubleClick(MouseEvent e) {
canvas.setXPunkt(e.x);
canvas.setYPunkt(e.y);
canvas.redraw();
// punktex[i] = e.x ;
// punktey[i] = e.y;
// i++;
}
});
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
}