Hallo!
Mein Problem: Bei Programmstart lasse ich ein Dreieck mittels paintComponent zeichnen. Später soll der User per Mausklick Punkte in dem Dreieck zeichnen können. Leider funktioniert das bei mir nicht.
Kann mir jemand helfen?
Mein Problem: Bei Programmstart lasse ich ein Dreieck mittels paintComponent zeichnen. Später soll der User per Mausklick Punkte in dem Dreieck zeichnen können. Leider funktioniert das bei mir nicht.
Kann mir jemand helfen?
Code:
public class MapPane extends JPanel{
Graphics2D var;
public void paintComponent(Graphics comp){
Graphics2D comp2D = (Graphics2D) comp;
var = comp2D;
comp2D.setColor(Color.pink);
comp2D.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
Rectangle2D.Float background = new Rectangle2D.Float(0F,0F, (float)getSize().width, (float)getSize().height);
comp2D.fill(background);
BasicStroke pen = new BasicStroke(1F, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND);
comp2D.setStroke(pen);
comp2D.setColor(Color.blue);
GeneralPath fl = new GeneralPath();
fl.moveTo(10F, (float)getSize().height -10F);
fl.lineTo(((float)getSize().width - 20F)/2F, 10F);
fl.lineTo((float)getSize().width - 10F, (float)getSize().height -10F);
fl.closePath();
comp2D.draw(fl);
}
void drawPoint(int x, int y){
var.setColor(Color.blue);
var.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
BasicStroke pen = new BasicStroke(1F, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND);
var.setStroke(pen);
Ellipse2D.Float e = new Ellipse2D.Float((float)x,(float)y,1F,1F);
var.draw(e);
}
}
public void mouseReleased(MouseEvent e){start.setEnabled(true);
reset.setEnabled(true);
map.drawPoint(e.getX() , e.getY());
repaint();}