From: felix Date: Thu, 17 May 2007 14:41:44 +0000 (+0000) Subject: int[] data durch List data ersetzt und neue Methode addData hinzugenommen X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=8eda8b2628fa3d279deff0076e032f6bf34ff114;p=bytewurf.git int[] data durch List data ersetzt und neue Methode addData hinzugenommen git-svn-id: https://www.internetallee.de/svn/bytewurf@40 a944a559-bf0e-0410-8ddc-85264b264b6c --- diff --git a/projekte/netzschalter/src/de/bytewurf/projekte/netzschalter/Oszilloskop.java b/projekte/netzschalter/src/de/bytewurf/projekte/netzschalter/Oszilloskop.java index 6d098d4..0a20c74 100644 --- a/projekte/netzschalter/src/de/bytewurf/projekte/netzschalter/Oszilloskop.java +++ b/projekte/netzschalter/src/de/bytewurf/projekte/netzschalter/Oszilloskop.java @@ -12,6 +12,8 @@ import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.RenderingHints; import java.awt.geom.Line2D; +import java.util.ArrayList; +import java.util.List; import javax.swing.BorderFactory; import javax.swing.JPanel; @@ -23,7 +25,7 @@ public class Oszilloskop extends JPanel { Netzdose netzdose; - int[] data; + List data = new ArrayList(); int min; @@ -31,76 +33,86 @@ public class Oszilloskop extends JPanel { public Oszilloskop(Netzdose netzdose) { this.netzdose = netzdose; - data = new int[] { -20, 1, 30, 10, 20, 25, 10, 2 }; - this.setPreferredSize(new Dimension(200, 100)); + setData(new int[] { -20, 1, 30, 10, 20, 25, 10, 2 }); + this.setPreferredSize(new Dimension(300, 200)); this.setBorder(BorderFactory.createLoweredBevelBorder()); } - public void paintComponent(Graphics g2) { - super.paintComponent(g2); - Graphics2D g = (Graphics2D) g2; + public void paintComponent(Graphics g) { + super.paintComponent(g); + Graphics2D g2d = (Graphics2D) g; Dimension size = getSize(); int border_x = 10; int border_y = 10; setBackground(Color.black); - g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, + g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); - g.setPaint(new Color(50, 80, 50)); - g.fillRect(border_x, border_y, (int) size.getWidth() - 2 * border_x, + g2d.setPaint(new Color(50, 80, 50)); + g2d.fillRect(border_x, border_y, (int) size.getWidth() - 2 * border_x, (int) size.getHeight() - 2 * border_y); - g.setPaint(Color.lightGray); - g.drawRect(border_x, border_y, (int) size.getWidth() - 2 * border_x, + g2d.setPaint(Color.lightGray); + g2d.drawRect(border_x, border_y, (int) size.getWidth() - 2 * border_x, (int) size.getHeight() - 2 * border_y); if (data != null) { - if (min == max) { - min = getMin(); - max = getMax(); - } - LogMediator.getInstance(this.getClass()).log("Min: " + min + " Max: " + max); - - double factor_x = (size.getWidth() - border_x * 2.0) / (data.length-1); + double factor_x = (size.getWidth() - border_x * 2.0) / (data.size() -1); double factor_y = (size.getHeight() - border_y * 2.0) / (max - min); - g.setPaint(Color.green); + g2d.setPaint(Color.green); int old_y = size.height - - ((int) ((data[0] - min) * factor_y + border_y)); + - ((int) ((((Integer) data.get(0)).intValue() - min) * factor_y + border_y)); int old_x = border_x; - for (int i = 0; i < data.length; i++) { + for (int i = 0; i < data.size(); i++) { int x = (int) (border_x + i * factor_x); int y = size.height - - ((int) ((data[i] - min) * factor_y + border_y)); - g.draw(new Line2D.Double(old_x, old_y, x, y)); + - ((int) ((((Integer) data.get(i)).intValue() - min) * factor_y + border_y)); + g2d.draw(new Line2D.Double(old_x, old_y, x, y)); old_x = x; old_y = y; } } - g.setPaint(Color.black); + g2d.setPaint(Color.black); } private int getMax() { int result = Integer.MIN_VALUE; - for (int i = 0; i < data.length; i++) - if (data[i] > result) - result = data[i]; + for (int i = 0; i < data.size(); i++) { + int current = ((Integer) data.get(i)).intValue(); + if (current > result) + result = current; + } return result; } private int getMin() { int result = Integer.MAX_VALUE; - for (int i = 0; i < data.length; i++) - if (data[i] < result) - result = data[i]; + for (int i = 0; i < data.size(); i++) { + int current = ((Integer) data.get(i)).intValue(); + if (current < result) + result = current; + } return result; } - public void setData(int[] data) { - this.data = data; - min = 0; - max = 0; + public void setData(int[] newData) { + this.data.clear(); + for (int i=0; i