Compare commits

...
3 Commits
Author SHA1 Message Date
schuhmannje82308 21f8bb449a ForEach zum path zeichnen 2023-12-05 17:41:15 +01:00
ahren 6bdad9c08a nach clean uuuuuup 2023-12-05 12:57:34 +01:00
ahren e9941da388 Bevor Cleanup 2023-12-05 12:56:25 +01:00
5 changed files with 71 additions and 28 deletions

No files matched your search

+1
View File
@@ -1 +1,2 @@
/build/ /build/
/dist/
@@ -50,9 +50,5 @@ public class GrafikController extends MouseAdapter implements MouseMotionListene
public void mouseReleased(MouseEvent evt) public void mouseReleased(MouseEvent evt)
{ {
model.endShape(); model.endShape();
// if (evt.getButton() == MouseEvent.BUTTON3)
// {
// view.doPrint();
// }
} }
} }
+39
View File
@@ -0,0 +1,39 @@
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
*/
package mvcgrafik.model;
import java.awt.Point;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
*
* @author ahren
*/
public class Figur implements Serializable
{
private ArrayList<Point> punkte;
public Figur(){
punkte = new ArrayList<>();
}
public void addPoint(Point p){
punkte.add(p);
}
public List<Point> getPunkte()
{
return Collections.unmodifiableList(punkte);
}
public void clear(){
punkte.clear();
}
}
+16 -14
View File
@@ -17,35 +17,37 @@ import java.io.ObjectOutputStream;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.logging.Logger;
import java.util.prefs.Preferences; import java.util.prefs.Preferences;
import mvcgrafik.util.OhmLogger;
/** /**
* *
* @author le * @author le
*/ */
public class GrafikModel public class GrafikModel
{ {
private ArrayList<Point> punkte; private Figur aktuelleFigur;
private ArrayList<ArrayList> figuren; private ArrayList<Figur> figuren;
private Preferences pref; private Preferences pref;
private static Logger lg = OhmLogger.getLogger();
public GrafikModel() public GrafikModel()
{ {
punkte = new ArrayList<>(); aktuelleFigur = new Figur();
figuren = new ArrayList<>(); figuren = new ArrayList<>();
} }
public void addPoint(Point p) public void addPoint(Point p)
{ {
punkte.add(p); aktuelleFigur.addPoint(p);
} }
public List<Point> getPunkte() public List<Point> getPunkte()
{ {
return Collections.unmodifiableList(punkte); return aktuelleFigur.getPunkte();
} }
public List<ArrayList> getFiguren(){ public List<Figur> getFiguren(){
return Collections.unmodifiableList(figuren); return Collections.unmodifiableList(figuren);
} }
@@ -86,13 +88,13 @@ public class GrafikModel
if (daten instanceof ArrayList liste) if (daten instanceof ArrayList liste)
{ {
figuren = liste; figuren = liste;
} }
} }
public void endShape() { public void endShape() {
figuren.add(new ArrayList<Point>(punkte)); figuren.add(aktuelleFigur);
punkte.clear(); aktuelleFigur = new Figur();
} }
/** /**
@@ -114,6 +116,6 @@ public class GrafikModel
{ {
pref.put(lastDirectory, lastAdress); pref.put(lastDirectory, lastAdress);
} }
} }
+15 -10
View File
@@ -38,6 +38,9 @@ public class GrafikView extends JComponent implements Printable
private Line2D.Float line; private Line2D.Float line;
private GrafikModel model; private GrafikModel model;
private Point from = null;
private Point to = null;
public GrafikView() public GrafikView()
{ {
pixel = new Rectangle2D.Float(); pixel = new Rectangle2D.Float();
@@ -70,6 +73,7 @@ public class GrafikView extends JComponent implements Printable
* Jedes mal wenn die Maus los gelassen wird, wird dder aktuelle Pfad gespeichert * Jedes mal wenn die Maus los gelassen wird, wird dder aktuelle Pfad gespeichert
* @param g * @param g
*/ */
@Override
public void paintComponent(Graphics g) public void paintComponent(Graphics g)
{ {
if (model == null) return; if (model == null) return;
@@ -79,21 +83,22 @@ public class GrafikView extends JComponent implements Printable
model.getFiguren().forEach(figuren-> model.getFiguren().forEach(figuren->
{ {
drawPath(figuren,g2); drawPath(figuren.getPunkte(),g2);
}); });
} }
public void drawPath(List<Point> path, Graphics2D g2){ public void drawPath(List<Point> path, Graphics2D g2){
from = path.getFirst();
to = null;
for(int i=0; i < path.size()-1; i++) path.forEach(point->
{ {
Point from = path.get(i); to = point;
Point to = path.get(i+1); line.setLine(from,to);
g2.draw(line);
line.setLine(from,to); from = to;
g2.draw(line);
} });
} }