| 

.NET C# Java Javascript Exception

2
Also ich habe ein Canvas, worauf ein Koordinatenkreuz gezeichnet wird, es wird aber immer nur ein Ausschnitt des Canvas gezeigt auf meiner Anwedungsoberfläche!
Ich müsste jetzt das MouseDOwn Event nutzen!oder?
Also das wenn ich die Maus gedrückt halte und bewege, sich das Bild immer mit bewegt!!
Wie kann ich das realisieren??
ich habe es jetzt mal ausprobiert, jedoch wird mir das ganze canvas auf der shell verschoben und nicht der "bildausschnitt" des Canvas!
ich weiß auch das es an der funktion
canvas.setLocation(xDiff, yDiff);
liegt, jedoch weiß ich nicht welche funkton ich dafür nutzen muss, um in canvas den ausschnitt zu verschieben!

public void guiErstellt() {
shell.setText("Funktions Plotter");
shell.setSize(900, 600);
// Canvas erzeugen und auf shell setzten
canvas = new Canvas(shell, SWT.BORDER | SWT.MouseDown | SWT.DragDetect | SWT.DRAG);
canvas.setSize(5000, 5000);
// Weisse Systemfarbe holen
Color white = canvas.getDisplay().getSystemColor(SWT.COLOR_WHITE);
canvas.setBackground(white);
canvas.setBounds(0, 0, 500, 500);
canvas.setFocus();
drawCross();
drawScala();
textFields(shell);
canvas.setDragDetect(true);
canvas.addMouseListener(new MouseListener() {

private int xStart;
private int yStart;
private int yExit;
private int xExit;

@Override
public void mouseUp(MouseEvent e) {
xExit = e.x;
yExit = e.y;
canvas.removeMouseMoveListener(new MouseMoveListener() {

@Override
public void mouseMove(MouseEvent e) {
}
});

// canvas.setLocation(xExit, yExit);
}

@Override
public void mouseDown(MouseEvent e) {
xStart = e.x;
yStart = e.y;
canvas.addMouseMoveListener(new MouseMoveListener() {

private int xDiff;
private int yDiff;

@Override
public void mouseMove(MouseEvent e) {
xDiff = xExit - xStart;
yDiff = yExit - yStart;
canvas.setLocation(xDiff, yDiff);
}
});
}


in JAVA-SWT
News:
24.04.2012
tanzverfuehrung 147 8
Bitte mehr Infos: Programmiersprache, Framework, Technologien,...
DaSpors 24.04.2012