hi ich hab folgendes programm aus meiner programmierungvorlesungsveranstaltung:
wenn man die linke maustaste drückt und dann die maus zieht wird ein rechteck aufgespannt.
nun frage ich mich ob die methode mouseRealeased(..) hier nicht komplett überflüssig ist, denn wenn ich sie weglasse sehe ich keinen unterschied beim zeichnen im vergleich zu zuvor.
wozu also diese methode hier?
wenn man die linke maustaste drückt und dann die maus zieht wird ein rechteck aufgespannt.
Java:
public class Main
{
public static void main(String[] a)
{
new MyFrame();
}
}
Java:
import javax.swing.JFrame;
public class MyFrame extends JFrame
{
MyFrame()
{
getContentPane().add(new Zeichenflaeche());
setLocation(100, 100);
setSize(400, 400);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
}
Java:
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Point;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
import javax.swing.JPanel;
public class Zeichenflaeche extends JPanel
{
Point a, b;
Zeichenflaeche()
{
addMouseListener(new MouseAdapter()
{
public void mousePressed(MouseEvent m)
{
a = m.getPoint();
b = null;
repaint();
}
public void mouseReleased(MouseEvent m)
{
b = m.getPoint();
repaint();
}
});
addMouseMotionListener(new MouseMotionAdapter()
{
public void mouseDragged(MouseEvent m)
{
b = m.getPoint();
repaint();
}
});
}
public void paint(Graphics g)
{
g.setColor(getBackground());
g.fillRect(0, 0, getWidth(), getHeight());
if(a!= null && b!= null)
zeichneRechteck(g, a, b);
}
public void zeichneRechteck(Graphics g, Point a, Point b)
{
g.setColor(Color.blue);
int obenlinks_x, obenlinks_y, breite, hoehe;
obenlinks_x = (int)Math.min(a.getX(), b.getX());
obenlinks_y = (int)Math.min(a.getY(), b.getY());
breite = (int)Math.abs(a.getX()-b.getX());
hoehe = (int)Math.abs(a.getY()-b.getY());
g.drawRect(obenlinks_x, obenlinks_y, breite, hoehe);
}
}
nun frage ich mich ob die methode mouseRealeased(..) hier nicht komplett überflüssig ist, denn wenn ich sie weglasse sehe ich keinen unterschied beim zeichnen im vergleich zu zuvor.
wozu also diese methode hier?