Ich habe Werte und Brauche Grafik!

Status
Nicht offen für weitere Antworten.

maxmoon

Mitglied
Ich habe zu einer bestimmten Zeit, bestimmte Werte, welche sich nach einer Zeit ändern. Daraus will ich nun ein Zeit-Anzahl-Diagramm machen und es live anzeigen lassen.

Doch wie wende ich ein Applet richtig an, damit ich ein normales Koordinatensystem habe, welches die Werte regelmässig übermittelt?

Danke für eure Hilfe!
 

André Uhres

Top Contributor
Code:
package varia;
/*
 * MonitorApplet.java
 */
import java.awt.*;
import java.awt.image.*;
import java.awt.geom.*;
import javax.swing.*;
import java.util.*;
public class MonitorApplet extends JApplet {
    private Monitor monitor;
    public void init() {
        Tester tester = new Tester();
        new Thread(tester).start();
        monitor = new Monitor(tester);
        getContentPane().add(monitor, BorderLayout.CENTER);
        Thread monitorThread = new Thread(monitor);
        monitorThread.setPriority(Thread.MIN_PRIORITY);
        monitorThread.start();
    }
}
class Monitor extends JPanel implements Runnable {
    private long sleepAmount = 1000;//wie oft aktualisiert wird (in Millisekunden)
    private int  histCount = 400;// maximale Lauflänge der Graphik
    private Object object;
    private BufferedImage bimg;
    private Graphics2D big;
    private Font font = new Font("Times New Roman", Font.PLAIN, 11);
    private float valuesArray[];
    private int w, h, ptNum, ascent, descent, columnInc;
    private Rectangle graphOutlineRect = new Rectangle();
    private Rectangle2D freeRect = new Rectangle2D.Float();
    private Rectangle2D valueRect = new Rectangle2D.Float();
    private Line2D graphLine = new Line2D.Float();
    private Color graphColor = new Color(46, 139, 87);
    private Color mfColor = new Color(0, 100, 0);
    private String str;
    public Monitor(final Object object) {
        this.object = object;
        setBackground(Color.black);
        valuesArray = new float[histCount];
        ptNum = 0;
    }
    public void paintComponent(final Graphics g) {
        super.paintComponent(g);
        if (big == null){
            Dimension d = getSize();
            if (d.width != w || d.height != h) {
                w = d.width;
                h = d.height;
                bimg = (BufferedImage) createImage(w, h);
                big = bimg.createGraphics();
                big.setFont(font);
                FontMetrics fm = big.getFontMetrics(font);
                ascent = (int) fm.getAscent();
                descent = (int) fm.getDescent();
            }
        }
        big.setBackground(getBackground());
        big.clearRect(0,0,w,h);
        plotValues(w,h, ((Tester)object).getWert());
        g.drawImage(bimg, 0, 0, this);
    }
    public void plotValues(final int width, final int height, final float wert) {
        float value =  wert;
        float total =  500000f;// hier hab ich auch nur einen Testwert eingesetzt
        big.setColor(Color.green);
        // Print Maximum
        big.drawString(String.valueOf((int)total) + "Max ", 4.0f, ascent+0.5f);
        big.setColor(Color.yellow);
        big.drawString("Monitor",  width/2, ascent+0.5f);
        // Print the value
        str = String.valueOf((int)value);
        big.setColor(Color.green);
        big.drawString(str, 4, height-descent);
        // Calculate remaining size
        float ssH = ascent + descent;
        float remainingHeight = (float) (height - (ssH*2) - 0.5f);
        float blockHeight = remainingHeight/10;
        float blockWidth = 20.0f;
        float remainingWidth = (float) (width - blockWidth - 10);
        // .. Free ..
        big.setColor(mfColor);
        int usage = (int) (((total - value) / total) * 10);
        int i = 0;
        for ( ; i < usage ; i++) {
            freeRect.setRect(5,(float) ssH+i*blockHeight,
                    blockWidth,(float) blockHeight-1);
            big.fill(freeRect);
        }
        // .. Value ..
        big.setColor(Color.green);
        for ( ; i < 10; i++)  {
            valueRect.setRect(5,(float) ssH+i*blockHeight,
                    blockWidth,(float) blockHeight-1);
            big.fill(valueRect);
        }
        // .. Draw History Graph ..
        if (remainingWidth <= 30) remainingWidth = (float)30;
        if (remainingHeight <= ssH) remainingHeight = (float)ssH;
        big.setColor(graphColor);
        int graphX = 30;
        int graphY = (int) ssH;
        int graphW = (int) remainingWidth;
        int graphH = (int) remainingHeight;
        graphOutlineRect.setRect(graphX, graphY, graphW, graphH);
        big.draw(graphOutlineRect);
        int graphRow = graphH/10;
        // .. Draw row ..
        for (int j = graphY; j <= graphH+graphY; j += graphRow) {
            graphLine.setLine(graphX,j,graphX+graphW,j);
            big.draw(graphLine);
        }
        // .. Draw animated column movement ..
        int graphColumn = graphW/15;
        if (columnInc == 0) {
            columnInc = graphColumn;
        }
        for (int j = graphX+columnInc; j < graphW+graphX; j+=graphColumn) {
            graphLine.setLine(j,graphY,j,graphY+graphH);
            big.draw(graphLine);
        }
        --columnInc;
        // save history.
        valuesArray[ptNum] = value;
        big.setColor(Color.yellow);
        int w1; // width of history.
        if (ptNum > graphW)  w1 = graphW;
        else                 w1 = ptNum;
        for (int j=graphX+graphW-w1, k=ptNum-w1; k < ptNum;
        k++, j++) {
            if (k != 0) {
                if (valuesArray[k] != valuesArray[k-1]) {
                    int h1 = (int)(graphY + graphH * ((total -valuesArray[k-1])/total));
                    int h2 = (int)(graphY + graphH * ((total -valuesArray[k])/total));
                    big.drawLine(j-1, h1, j, h2);
                } else {
                    int h1 = (int)(graphY + graphH * ((total -valuesArray[k])/total));
                    big.fillRect(j, h1, 1, 1);
                }
            }
        }
        if (ptNum+2 == valuesArray.length) {
            // throw out oldest point
            for (int j = 1;j < ptNum; j++) {
                valuesArray[j-1] = valuesArray[j];
            }
            --ptNum;
        } else {
            ptNum++;
        }
    }
    public void run() {
        while (true) {
            repaint();
            try { Thread.sleep(sleepAmount); } catch (InterruptedException e) { break; }
        }
    }
}
class Tester implements Runnable {// Test thread to generate values
    private float testWert;
    public Tester() {
    }
    public void run() {
        int sign = 1;
        while(true){//Hier wird der testWert verändert (Testfunktion):
            try {Thread.sleep(100);} catch (Exception x){}
            if(testWert > 200000) sign = -1;
            if(testWert < 10000)  sign =  1;
            testWert += sign*1000;
        }
    }
    public float getWert(){
        return testWert;
    }
}
 
G

Guest

Gast
Boah, danke! Das sieht verdammt gut aus, doch habe ich keine Ahnung von dem ganzen Script und es würde verdammt viel Zeit kosten das alles zu studieren und zu verstehen.

Geht das auch einfacher ohne ein fließendes Diagramm zu haben?

Ich dachte eher an ein normales Koordinatensystem und jede Sekunde werden die neuen Werte (Zeit und Anzahl) in das System übertragen, z.B. als einfacher Punkt. Das Koordinatensystem sollte so groß sein, dass man das Programm z.B. 5 Min. lang betrachten kann oder die Breite selbst festlegt.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
berserkerdq2 Wie greife ich auf ein Element zu, welches ich beim Scenebuilder erstellt habe AWT, Swing, JavaFX & SWT 10
B JavaFX habe mein Problem fett markiert AWT, Swing, JavaFX & SWT 2
R AWT Ich verstehe die Fehlermeldung nicht. Was habe ich falsch gemacht? AWT, Swing, JavaFX & SWT 85
S Swing JFrame hat nicht die Größe, die ich eingegeben habe AWT, Swing, JavaFX & SWT 3
T hallo, habe ein Problem mit dem pro. eines Threads AWT, Swing, JavaFX & SWT 4
Z habe code, habe fehler, habe keine lösung AWT, Swing, JavaFX & SWT 7
C Habe Probleme beim Bild laden! *Update 30.11.2006* AWT, Swing, JavaFX & SWT 28
F Habe Problem mit dem Abfangen einer Exception AWT, Swing, JavaFX & SWT 10
C JFreeChart X-Achse Werte skalieren, begrenzen, zoomen AWT, Swing, JavaFX & SWT 5
D ObservableList Werte hinzufügen AWT, Swing, JavaFX & SWT 7
missy72 JavaFX TableView / TableColumn / ObservableList / zwei Werte in einer Zelle AWT, Swing, JavaFX & SWT 2
J Swing Werte des JTable werden nicht angezeigt AWT, Swing, JavaFX & SWT 9
P Adressbuch Werte speichern AWT, Swing, JavaFX & SWT 21
Blender3D Falsche Werte mit Java Toolkit Screensize AWT, Swing, JavaFX & SWT 4
B JavaFX JavaFX TableView PropertyValueFactory für Werte aus HashMap AWT, Swing, JavaFX & SWT 2
F RGB-Werte aus einem String einlesen AWT, Swing, JavaFX & SWT 26
emma_louisa JavaFX Werte beim Aufrufen des Fensters übernehmen (SceneBuilder) AWT, Swing, JavaFX & SWT 3
Arif Swing MouseMotionListener liefert falsche Werte ? AWT, Swing, JavaFX & SWT 7
G Werte aus dem GUI Auslesen AWT, Swing, JavaFX & SWT 8
N Swing JFormattedTextField keine Werte nach Formatzuweisung AWT, Swing, JavaFX & SWT 0
B JavaFX Werte aus eingefügtem Window lesen AWT, Swing, JavaFX & SWT 0
Augenblau JavaFX Wechselnde Werte in Label darstellen AWT, Swing, JavaFX & SWT 7
M Swing JFreechart zoom x-achse neue Werte AWT, Swing, JavaFX & SWT 4
P Swing JTable Werte auslesen bzw überschreiben AWT, Swing, JavaFX & SWT 5
L JTable Werte mulitiplizieren AWT, Swing, JavaFX & SWT 3
R AWT Werte aus NumberField vergleichen AWT, Swing, JavaFX & SWT 9
H org.eclipse.swt.widgets.Slider und negative Werte AWT, Swing, JavaFX & SWT 3
S ComboBox-Werte aus einem Array an Textfields übergeben AWT, Swing, JavaFX & SWT 3
N Input/Output Stream werte in Label anzeigen. AWT, Swing, JavaFX & SWT 6
F JavaFX Properties und NULL Werte AWT, Swing, JavaFX & SWT 2
A JFreeChart BarChart invertierte anzeige oder werte bereich von-bis AWT, Swing, JavaFX & SWT 4
A Swing Bestimmte Werte anzeigen JSlider() AWT, Swing, JavaFX & SWT 2
T label überschriebt seine werte-SWT AWT, Swing, JavaFX & SWT 3
E werte zurück in GUI schreiben AWT, Swing, JavaFX & SWT 4
S JTable - 2D ArrayList & Falsche Werte. AWT, Swing, JavaFX & SWT 3
E werte aus List auslesen AWT, Swing, JavaFX & SWT 2
C Swing Default Werte für JFormattedTextField und Eingaben zurücksetzen AWT, Swing, JavaFX & SWT 5
E Listener, werte in andere Klasse übernehmen AWT, Swing, JavaFX & SWT 11
K JTable Werte auslesen AWT, Swing, JavaFX & SWT 2
K JComboBox: Beim Einfügen neuer Werte ItemStateChanged blocken. AWT, Swing, JavaFX & SWT 2
Z Swing Mittels GUI Werte aus Property-File ändern AWT, Swing, JavaFX & SWT 5
S Swing Werte einer Jcheckbox aus eine Klasse A in eine Klasse B aufrufen AWT, Swing, JavaFX & SWT 6
P 2D-Grafik PaintComponent() übernimmt keine Werte aus update() AWT, Swing, JavaFX & SWT 8
B Die Werte von getLocation() im Label anzeigen AWT, Swing, JavaFX & SWT 4
J Swing jSlider nur auf bestimmte werte beschränken AWT, Swing, JavaFX & SWT 15
J JDialog verliert Werte AWT, Swing, JavaFX & SWT 3
T JTextField nur Double werte eingeben AWT, Swing, JavaFX & SWT 2
D Swing JTable Werte AWT, Swing, JavaFX & SWT 2
J Werte aus Combobox speichern AWT, Swing, JavaFX & SWT 3
F Swing JList doppelte werte AWT, Swing, JavaFX & SWT 3
A Swing JFrame Werte aus JDialog übergeben AWT, Swing, JavaFX & SWT 4
E Jtable Werte ohne Enter übernehmen AWT, Swing, JavaFX & SWT 9
F JComboBox gibt falsche werte AWT, Swing, JavaFX & SWT 3
P getMousePosition(): andere Werte als erwartet AWT, Swing, JavaFX & SWT 4
D Comboboxen werte Falsch. AWT, Swing, JavaFX & SWT 2
A TableRowSorter für double Werte mit Formatierung AWT, Swing, JavaFX & SWT 3
M Comboboxen in JTable - Werte auslesen AWT, Swing, JavaFX & SWT 9
calzone Swing JTable, Werte aktualisieren klappt nicht! AWT, Swing, JavaFX & SWT 7
R Swing JTable, werte speichern und laden AWT, Swing, JavaFX & SWT 25
G Alle Werte einer Spalte in JTable zusammenrechnen AWT, Swing, JavaFX & SWT 2
S JTable Werte werden nicht übernommen AWT, Swing, JavaFX & SWT 2
C Werte aus der Tabelle lesen AWT, Swing, JavaFX & SWT 4
K JSpinner - Model <-> View, unterschiedliche Werte AWT, Swing, JavaFX & SWT 9
A Werte in ein Textfeld übernehmen AWT, Swing, JavaFX & SWT 4
L JTextField Umwandeln in double-Werte AWT, Swing, JavaFX & SWT 5
P Bei Buttons Werte übergeben AWT, Swing, JavaFX & SWT 2
G eingegebene Werte einer JTable prüfen? Bitte helfen AWT, Swing, JavaFX & SWT 5
G Werte in Koordinatensystem zeichnen AWT, Swing, JavaFX & SWT 11
G ComboBox Werte auslesen uns setzen AWT, Swing, JavaFX & SWT 6
M JFormattedTextField und Null-Werte AWT, Swing, JavaFX & SWT 4
loadbrain auslesen der Werte dynamischer Textfields AWT, Swing, JavaFX & SWT 21
T JTextField, der nur Werte zwischen 100 und 1000 zulässt AWT, Swing, JavaFX & SWT 28
P Double-Werte sortieren mit TableRowSorter AWT, Swing, JavaFX & SWT 2
L Farbregler - Werte als Zahl ausgeben - Color AWT, Swing, JavaFX & SWT 5
K JTree: Werte in Blätter speichern? AWT, Swing, JavaFX & SWT 8
K JSpinner Werte verschwinden bei Panel Wechsel AWT, Swing, JavaFX & SWT 2
raptorrs J2D paintComponent: Nur ganzzahlige (-int) Werte möglich? AWT, Swing, JavaFX & SWT 3
P JDialog Werte auslesen AWT, Swing, JavaFX & SWT 2
V Werte mehreren Checkboxes zuweisen AWT, Swing, JavaFX & SWT 3
V Werte aus TextField in eine andere Klasse? AWT, Swing, JavaFX & SWT 2
T Werte aus JTable auslesen AWT, Swing, JavaFX & SWT 10
B Eingabefelder nur für bestimmte Werte AWT, Swing, JavaFX & SWT 8
W JavaFX CSS und Vererbung - ich brauche nochmal etwas Nachhilfe AWT, Swing, JavaFX & SWT 28
J 2D-Grafik Brauche Erklärung von Methode AWT, Swing, JavaFX & SWT 1
B Swing Wann brauche ich repaint() ? AWT, Swing, JavaFX & SWT 1
J Swing Wann brauche ich @Override vor der paint()-Methode? AWT, Swing, JavaFX & SWT 1
V Swing Brauche Hilfe mit Label AWT, Swing, JavaFX & SWT 3
K Swing Brauche Hilfe AWT, Swing, JavaFX & SWT 6
O AWT Performance und Bug behebung[brauche Hilfe] AWT, Swing, JavaFX & SWT 2
D Ambitioniertes Projekt - Brauche Stichworte AWT, Swing, JavaFX & SWT 4
D Swing Wozu brauche ich getContentPane()? AWT, Swing, JavaFX & SWT 2
S Ich brauche eine Idee: Animation mit teil eines Bildes AWT, Swing, JavaFX & SWT 16
L Mein Kopf dreht sich... Brauche Hilfe beim GUI gestalten AWT, Swing, JavaFX & SWT 10
J Brauche ganz dringend Hilfe!!! AWT, Swing, JavaFX & SWT 5
S Brauche genaustes Verstaendnis ueber JTextField AWT, Swing, JavaFX & SWT 3
M brauche Hilfe um Einträge aus Jlist zu löschen AWT, Swing, JavaFX & SWT 4
W Brauche Swing-Experten AWT, Swing, JavaFX & SWT 4
P Welchen Listener brauche ich? AWT, Swing, JavaFX & SWT 7
G Welche Swing-Version brauche ich . AWT, Swing, JavaFX & SWT 6
S Wann brauche ich die prepareRenderer() Methode ? AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben