Hi,
ich probier grad ein wenig mit mouseListener und zeichnen und so aus.
Also ich hab ein einfaches JFramewo drauf ich zeichnen möchte.
Ziel ist es jetzt, ich drücke irgendwohin, dann drücke ich woanders hin, aber drücke nebenbei noch die Shift tase...jetzt möchte ich ein rechteck vom zuerst gedrückten punkt, bis zum punkt zeichnen wo ich danach hingedrückt habe....aber irgendwie klappt das nicht so ganz,
so hab ichs bisher realisiert:
ich probier grad ein wenig mit mouseListener und zeichnen und so aus.
Also ich hab ein einfaches JFramewo drauf ich zeichnen möchte.
Ziel ist es jetzt, ich drücke irgendwohin, dann drücke ich woanders hin, aber drücke nebenbei noch die Shift tase...jetzt möchte ich ein rechteck vom zuerst gedrückten punkt, bis zum punkt zeichnen wo ich danach hingedrückt habe....aber irgendwie klappt das nicht so ganz,
so hab ichs bisher realisiert:
Java:
private Point _mousePressedPoint;
private static int CTRL = 0;
addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
_mousePressedPoint = e.getPoint();
int modifiersEx = e.getModifiersEx();
boolean shiftAndMouse = ((modifiersEx & MouseEvent.SHIFT_DOWN_MASK) > 0) && ((modifiersEx & MouseEvent.BUTTON1_DOWN_MASK) > 0);
if(shiftAndMouse) {
_mouseReleasedPoint = e.getPoint();
paintSelection(e, SHIFT);
}
}
}
private void paintSelection(MouseEvent e, int status) {
Graphics2D g2d = (Graphics2D)e.getComponent().getGraphics();
if(status == SHIFT) {
// zeichnen
g2d.setColor(Color.RED);
g2d.drawRect((int)_mousePressedPoint.getX(), (int)_mousePressedPoint.getY(), (int)_mouseReleasedPoint.getX(), (int)_mouseReleasedPoint.getY());
}
}
});