Problem beim zeichen eines TimeSeriesChart mit jfreechart

Status
Nicht offen für weitere Antworten.
H

headbanger

Gast
Moin Leute,

ich habe da ein kleines Problem ich möchte gerne ein Diagramm zeichen welches an der x-achse das jeweilige Datum zum passenden y anzeigt ... nix wildes habe mir dann eine kleine demo besorgt um zu verstehen wie das ganze funktioniert ... jetzt raffe ich nichtso ganz was das soll :

s1.add(new Day(01, 06, 2007), 167.3); s1 ist der Graph bzw Linie new Day der eintrag auf der x achse 167.3 der y wert okay aber 01,06,2007 wasn das fürn datentyp ?? 3 int werte ??

Weil mein problem ist das ich das datum jeweils als string vorliegen habe ???:L wo kann ich denn sagen das new Day einen String als Datum erwartet ??

hier mal der quell text

Code:
public class TimeSeriesChartDemo1 extends ApplicationFrame {
	static ChartEventAdmin cea = new ChartEventAdmin();

	static EventAdmin ea = new EventAdmin();

	static ShoppingCart sc = new ShoppingCart();

	static WorkerAdmin wa = new WorkerAdmin(ea);

	static ArticleAdmin aa = new ArticleAdmin(ea, cea);

	static CustomerAdmin ca = new CustomerAdmin(ea);

	static BillAdmin ba = new BillAdmin(ea, aa, sc);

	static PersistenceAdmin pa = new PersistenceAdmin(ea, cea, wa, ca, aa, ba);

	/**
	 * A demonstration application showing how to create a simple time series
	 * chart. This example uses monthly data.
	 * 
	 * @param title
	 *            the frame title.
	 */
	public TimeSeriesChartDemo1(String title) {
		super(title);
		XYDataset dataset = createDataset();
		JFreeChart chart = createChart(dataset);
		ChartPanel chartPanel = new ChartPanel(chart, false);
		chartPanel.setPreferredSize(new java.awt.Dimension(750, 300));
		chartPanel.setMouseZoomable(true, true);
		setContentPane(chartPanel);
	}

	/**
	 * Creates a chart.
	 * 
	 * @param dataset
	 *            a dataset.
	 * 
	 * @return A chart.
	 */
	private static JFreeChart createChart(XYDataset dataset) {

		JFreeChart chart = ChartFactory.createTimeSeriesChart(
				cea.getArtName(999), // title
				"Datum", // x-axis label
				"Lagerbestand", // y-axis label
				dataset, // data
				false, // create legend?
				false, // generate tooltips?
				false // generate URLs?
				);

		chart.setBackgroundPaint(Color.white);

		XYPlot plot = (XYPlot) chart.getPlot();
		plot.setBackgroundPaint(Color.lightGray);
		plot.setDomainGridlinePaint(Color.white);
		plot.setRangeGridlinePaint(Color.white);
		plot.setAxisOffset(new RectangleInsets(5.0, 5.0, 5.0, 5.0));
		plot.setDomainCrosshairVisible(true);
		plot.setRangeCrosshairVisible(true);

		XYItemRenderer r = plot.getRenderer();
		if (r instanceof XYLineAndShapeRenderer) {
			XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer) r;
			renderer.setBaseShapesVisible(true);
			renderer.setBaseShapesFilled(true);
		}

		DateAxis axis = (DateAxis) plot.getDomainAxis();

		axis.setDateFormatOverride(new SimpleDateFormat("yyyy:MM:dd"));

		return chart;

	}

	/**
	 * Creates a dataset, consisting of two series of daily data.
	 * 
	 * @return The dataset.
	 */
	private static XYDataset createDataset() {

		TimeSeries s1 = new TimeSeries(cea.getArtName(999), Day.class);
		java.util.Vector Daten = getDateDataforGraph(999,cea);
		 Iterator iter = Daten.iterator();
		
		 while (iter.hasNext()){
			 Event e = (Event)iter.next();
			 s1.add(new Day(e.getdFormat()),e.getActAmount()); 
			 
			 
		 }
		

//		s1.add(new Day(01, 06, 2007), 167.3);
//		s1.add(new Day(02, 06, 2007), 153.8);
//		s1.add(new Day(03, 06, 2007), 167.6);
//		s1.add(new Day(04, 06, 2007), 158.8);
//		s1.add(new Day(05, 06, 2007), 148.3);
//		s1.add(new Day(06, 06, 2007), 153.9);
//		s1.add(new Day(07, 06, 2007), 142.7);
//		s1.add(new Day(8, 06, 2007), 123.2);
//		s1.add(new Day(9, 06, 2007), 131.8);
//		s1.add(new Day(10, 06, 2007), 139.6);
//		s1.add(new Day(11, 06, 2007), 142.9);
//		s1.add(new Day(12, 06, 2007), 138.7);
//		s1.add(new Day(14, 06, 2007), 137.3);
//		s1.add(new Day(15, 06, 2007), 143.9);
//		s1.add(new Day(16, 06, 2007), 139.8);
//		s1.add(new Day(17, 06, 2007), 137.0);
//		s1.add(new Day(18, 06, 2007), 132.8);
//		s1.add(new Day(19, 06, 2007), 181.8);
//		s1.add(new Day(20, 06, 2007), 167.3);
//		s1.add(new Day(21, 06, 2007), 153.8);
//		s1.add(new Day(22, 06, 2007), 167.6);
//		s1.add(new Day(23, 06, 2007), 158.8);
//		s1.add(new Day(24, 06, 2007), 148.3);
//		s1.add(new Day(25, 06, 2007), 153.9);
//		s1.add(new Day(26, 06, 2007), 142.7);
//		s1.add(new Day(27, 06, 2007), 123.2);
//		s1.add(new Day(28, 06, 2007), 131.8);
//		s1.add(new Day(29, 06, 2007), 139.6);
//		s1.add(new Day(30, 06, 2007), 142.9);

		TimeSeriesCollection dataset = new TimeSeriesCollection();
		dataset.addSeries(s1);

		dataset.setDomainIsPointsInTime(true);

		return dataset;

	}

	/**
	 * Creates a panel for the demo (used by SuperDemo.java).
	 * 
	 * @return A panel.
	 */
	public static JPanel createDemoPanel() {
		JFreeChart chart = createChart(createDataset());
		return new ChartPanel(chart);
	}

	/**
	 * Starting point for the demonstration application.
	 * 
	 * @param args
	 *            ignored.
	 */
	static java.util.Vector getDateDataforGraph(int ArtNr, ChartEventAdmin cea) {
		java.util.Vector<Event> result = new java.util.Vector<Event>();
		int o = -1;
		Event e = null;
//		String datetmp = null;
//		Event prevEvent = null;
		java.util.Vector tmp = cea.getVData();// tmp bekommt vektor
		for (int i = 0; i < tmp.size(); i++) {
			e = (Event) tmp.get(i); // event e an der stelle im Vektor
			if (e.getANr() == ArtNr) { // abfrage ob artnr passt
				if (result.size()!=0
						&& result.get(o).getDFormat().equals(e.getDFormat())) {
					result.set(o, e);
				} else {
					result.add(e);
					o++;
				}
			}
		}
		return result;

	}
	public void generateGraphData(int ArtNr){
		
	}

	public static void main(String[] args) {
		IO.println(cea.getArtName(999));
		java.util.Vector jojo = getDateDataforGraph(999, cea);
		for (int i = 0; i < jojo.size(); i++) {
			IO.println(((Event) jojo.elementAt(i)).toString2());
			
		}
		TimeSeriesChartDemo1 demo = new TimeSeriesChartDemo1(
				"Lagerhisorie für "+cea.getArtName(999));
		demo.pack();
		RefineryUtilities.centerFrameOnScreen(demo);
		demo.setVisible(true);

	}

also wichtig ist nur der punkt an der stelle s1.add(new day(),); wie bekomme ich da meinen String rein ??

Bitte habt etwas nachsicht mit mir da ich im umgang der java api bzw allg. mit apis noch nicht so fitt bin

besten dank

grüße

head
 
S

SlaterB

Gast
selbst wenn es einen Konstruktor für String gäbe, was soll der denn alles verstehen?
"1.2.01"
"01:02/30001"
"January 2 01"
"1 Februar 01"
usw?

mehrdeutig, wirr, unverarbeitbar

da musst du schon selber genau den Tag, Monat und Jahr herauslesen,
z.B. mit SimpleDateFormat ein Date/ Calendar-Objekt erzeugen,
dort dann die Felder auslesen oder den Konstruktor
Day(java.util.Date time)
Constructs a new instance, based on a particular date/time and the default time zone.
verwenden

wenn du die API nicht magst kann ich dir noch das Lehrbuch empfehlen,
für dich programmieren werde ich es aber nicht ;)



http://www.galileocomputing.de/openbook/javainsel6/javainsel_10_008.htm#Xxx999912

Vorsicht bei all diesen Geschichten: Monate laufen gerne mal von 0 bis 11 statt 1 bis 12
 
H

headbanger

Gast
hey ertmal danke für die antwort

programmieren brauchste mir auch nix ... man will ja was lernen

okay das mit dem dateformat muss ich mal testen ... ich dachte nur da im quelltext da schon angegeben ist wie das Format aussehen soll kann ich einfach mit meinen richtig formatierten strings arbeiten ..hmmm

ich habe mir jetzt noch das überlegt
Code:
private static XYDataset createDataset() {

		TimeSeries s1 = new TimeSeries(cea.getArtName(999), Day.class);
		java.util.Vector Daten = getDateDataforGraph(999,cea);
		 Iterator iter = Daten.iterator();
		 
		 Day d= new Day();
		 while (iter.hasNext()){
			 
			 Event e = (Event)iter.next();
			 
			 Day.parseDay(e.getDFormat());
			 s1.add(d,e.getActAmount());
			 
			 
			 
		 }

aber leider schmiert mir das ganze ab ...Mit dieser meldung

Exception in thread "main" org.jfree.data.general.SeriesException: You are attempting to add an observation for the time period 2-Juli-2007 but the series already contains an observation for that time period. Duplicates are not permitted. Try using the addOrUpdate() method.

und da verstehe ich nicht was das soll ?? Bei jedem Durchgang meines Vectors habe ich ein neues Objekt welches mir ein neues Datum liefert wieso wird denn jetzt rumgemault da sei was doppelt ???:L

grüße

head
 
H

headbanger

Gast
lol fehler gefunden ich bin auch blöd ...

zeile 13 da muss natürlich stehen d= :autsch:

naja schön wenn man sich selber helfen kann ;)


besten dank

grüße

head
 
H

headbanger

Gast
mist zu früh gefreut

dreht die x achse jetzt total am rad

hier mal das bild


und hier die daten wie sie im vector stehen

objekt der begierde
2007.06.26|999|objekt der begierde|35
2007.06.28|999|objekt der begierde|50
2007.06.29|999|objekt der begierde|25

hmmm

grüße

head
 
H

headbanger

Gast
okay noch mal ich :lol:

so es geht jetzt .. mein fehler war einfach das das datumsformat einfach falsch rum geschrieben war

naja

jetzt kann ich endlich ins bett ^^

tschö

head
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
TheWhiteShadow JavaFX ListView Problem beim Entfernen von Elementen AWT, Swing, JavaFX & SWT 1
K JavaFX Resizing-Problem beim BorderLayout (Center Component) beim Arbeiten mit mehreren FXMLs AWT, Swing, JavaFX & SWT 2
L JavaFX Problem beim Aufrufen einer Methode AWT, Swing, JavaFX & SWT 5
I 2D-Grafik Problem beim Ändern der Farbe eine 2d Objekts AWT, Swing, JavaFX & SWT 3
7 JavaFX Problem beim Zeichnen eines Dreiecks in einem GUI AWT, Swing, JavaFX & SWT 6
N Swing Problem beim Scrollen mit JScrollPane AWT, Swing, JavaFX & SWT 6
N Swing JTree Problem beim erstellen der Knoten AWT, Swing, JavaFX & SWT 0
N Swing CardLayout: Problem beim Wechsel zwischen den JPanels AWT, Swing, JavaFX & SWT 3
T Problem beim Zeichnen von Rechteck AWT, Swing, JavaFX & SWT 3
S Anordnung von GUI-Komponenten mit LayouManger (Problem beim anzeigen von JTextField) AWT, Swing, JavaFX & SWT 5
A Swing Problem beim Neuerstellen einer Node AWT, Swing, JavaFX & SWT 4
bluerob Problem beim Image zeichnen via andere Klasse AWT, Swing, JavaFX & SWT 7
B Swing Problem beim ActionListener AWT, Swing, JavaFX & SWT 5
K Swing Problem beim Zeichnen von Kreisen AWT, Swing, JavaFX & SWT 4
K JButton Problem beim Schriftfarbe Ändern AWT, Swing, JavaFX & SWT 2
P Problem beim erstellen eines JPanel in einem JFrame AWT, Swing, JavaFX & SWT 7
R Problem beim Anzeigen von Bildern auf JInternalFrame AWT, Swing, JavaFX & SWT 6
D 2D-Grafik Problem beim Drucken eines Grafik-Objekts AWT, Swing, JavaFX & SWT 2
M Problem beim Eventhandling AWT, Swing, JavaFX & SWT 5
B Problem beim laden von Bild mit getResource() AWT, Swing, JavaFX & SWT 3
T JSpinner in JTable: Problem beim Auslesen, funktioniert erst beim Zellwechsel AWT, Swing, JavaFX & SWT 7
H Thread-Problem mit der Darstellung beim Sperren des Fensters AWT, Swing, JavaFX & SWT 2
C Performance-Problem beim Überschreiben von paintComponent() AWT, Swing, JavaFX & SWT 2
M Problem beim Zeichnen mit Path2D AWT, Swing, JavaFX & SWT 4
F Swing JTable: Problem beim zeile löschen AWT, Swing, JavaFX & SWT 3
G Problem beim setzen des Fokus AWT, Swing, JavaFX & SWT 4
Z Problem beim JTextField AWT, Swing, JavaFX & SWT 5
C Swing Problem beim 2. Öffnen eines JFrames AWT, Swing, JavaFX & SWT 9
1 Java.awt.Robot Problem beim Shift-Druck AWT, Swing, JavaFX & SWT 5
B Swing Problem beim Elemente zu JList hinzufügen AWT, Swing, JavaFX & SWT 5
F Problem beim Positionieren von Icon und Text in Button AWT, Swing, JavaFX & SWT 2
Developer_X Swing Problem beim "rezeichnen" -> Überzeichnen der Komponente AWT, Swing, JavaFX & SWT 8
N SWT Einfaches Problem beim Layout AWT, Swing, JavaFX & SWT 8
N Swing Problem beim Einlesen von Jtable in Array AWT, Swing, JavaFX & SWT 5
W Swing Problem beim Passwort Dialog AWT, Swing, JavaFX & SWT 4
C Problem mit Swing Application Framework - Projekt beim AWT, Swing, JavaFX & SWT 2
F kleines problem beim suchen in einem String AWT, Swing, JavaFX & SWT 15
A Problem beim Setzen von JPanels AWT, Swing, JavaFX & SWT 4
P Problem beim Linien ziehen! AWT, Swing, JavaFX & SWT 12
S Problem beim Anpassen vom GridBagLayout AWT, Swing, JavaFX & SWT 10
H Adressbuch - Problem beim Speichern der Eingabe AWT, Swing, JavaFX & SWT 5
A Problem mit der Seiteneinrichtung beim Drucken AWT, Swing, JavaFX & SWT 7
P Bug in Java? - Problem beim Ändern von Spaltentiteln AWT, Swing, JavaFX & SWT 2
I Layout Problem beim Skalieren AWT, Swing, JavaFX & SWT 3
S Problem beim implementerien von ActionListener AWT, Swing, JavaFX & SWT 4
Y Problem beim Drucken AWT, Swing, JavaFX & SWT 2
A Problem beim Import! AWT, Swing, JavaFX & SWT 2
M Problem beim Einsatz von ScrollPane (Fenster spielt verrückt AWT, Swing, JavaFX & SWT 2
Z Und schon wieder die Linien (Problem beim überzeichnen) AWT, Swing, JavaFX & SWT 4
W Problem beim neuzeichnen eines Rechteckes (SWT) AWT, Swing, JavaFX & SWT 2
J Problem beim Multi-Threading mit einem JDialog AWT, Swing, JavaFX & SWT 2
J Problem mit Alpha-Wert beim Button AWT, Swing, JavaFX & SWT 3
P Problem beim Zeichnen auf ein BufferedImage AWT, Swing, JavaFX & SWT 4
F Problem mit geänderten AttributSet beim StyledDocument AWT, Swing, JavaFX & SWT 4
B BorderLayout/JSplitPane Problem beim Ausrichten AWT, Swing, JavaFX & SWT 5
C Problem beim Ausführen von Thread per Button AWT, Swing, JavaFX & SWT 2
S Problem beim Image laden AWT, Swing, JavaFX & SWT 4
D Problem beim Erstellen eines GridBagLayouts AWT, Swing, JavaFX & SWT 3
A Problem beim Neuzeichnen AWT, Swing, JavaFX & SWT 2
V Problem beim drucken AWT, Swing, JavaFX & SWT 4
D Problem beim Update von unsichtbaren JComponents mit Timern AWT, Swing, JavaFX & SWT 5
S Problem beim Umbenennen von MP3s AWT, Swing, JavaFX & SWT 10
O Problem beim Umwandeln eines Applets in eine Applikation AWT, Swing, JavaFX & SWT 15
T Problem beim Laden von Bildern AWT, Swing, JavaFX & SWT 14
G Problem mit der Anzeige von jLabel. Unlesbar wenn der Text geändert wird. AWT, Swing, JavaFX & SWT 28
H 2D-Grafik Problem mit Paint AWT, Swing, JavaFX & SWT 1
S Layout - Problem AWT, Swing, JavaFX & SWT 1
Tassos JavaFX/Problem mit der Maussteuerung in Stackpane AWT, Swing, JavaFX & SWT 7
sserio Java Fx - Problem AWT, Swing, JavaFX & SWT 3
A Problem Spiel auf Panel der GUI zu bringen AWT, Swing, JavaFX & SWT 1
A JavaFX Controller Problem AWT, Swing, JavaFX & SWT 1
E LayoutManager Welcher Layout-Mix löst mein Problem? AWT, Swing, JavaFX & SWT 3
Umb3rus JavaFX Problem mit PropertyValueFactory: can not read from unreadable property AWT, Swing, JavaFX & SWT 1
T Problem mit paintComponent() AWT, Swing, JavaFX & SWT 17
AmsananKING Java Menü-Problem AWT, Swing, JavaFX & SWT 1
G Instance OF Problem AWT, Swing, JavaFX & SWT 9
FrittenFritze Ein Problem mit der CSSBox, die Größe wird nicht angepasst AWT, Swing, JavaFX & SWT 5
M Problem mit dem Anzeigen von Frames im Vordergrund AWT, Swing, JavaFX & SWT 5
Badebay Problem mit JButton AWT, Swing, JavaFX & SWT 2
newJavaGeek Grid-Layout problem AWT, Swing, JavaFX & SWT 7
J JavaFX Löschen im Tabelview macht Problem AWT, Swing, JavaFX & SWT 15
JavaTalksToMe JavaFx ExekutorService Problem AWT, Swing, JavaFX & SWT 2
Zrebna Problem bei Eventhandling (Value soll nach jedem erneutem Klick gelöscht werden) AWT, Swing, JavaFX & SWT 4
B Problem mit JavaFX AWT, Swing, JavaFX & SWT 5
J css Problem AWT, Swing, JavaFX & SWT 5
B JavaFX habe mein Problem fett markiert AWT, Swing, JavaFX & SWT 2
A Swing Filter-Problem AWT, Swing, JavaFX & SWT 1
temi JavaFX Problem mit IntelliJ und JavaFx 11 unter XUbuntu AWT, Swing, JavaFX & SWT 3
L Java FX Problem mit Ubuntu 18 und JavaFx AWT, Swing, JavaFX & SWT 27
H JTable TableCellEditor-Problem AWT, Swing, JavaFX & SWT 0
kodela Swing Problem mit Warten-Dialog AWT, Swing, JavaFX & SWT 16
B JavaFx Scene Builder Problem AWT, Swing, JavaFX & SWT 2
B [Problem] Java öffnet Word-Datein nicht AWT, Swing, JavaFX & SWT 14
T DataBinding Problem AWT, Swing, JavaFX & SWT 5
Blender3D Problem mit € Symbol Font Gotham Windows 10 Swing AWT, Swing, JavaFX & SWT 11
T Problem mit JTable Sortierung AWT, Swing, JavaFX & SWT 2
J Problem mit Platfrom run later AWT, Swing, JavaFX & SWT 15
J Problem mit Platfrom run later AWT, Swing, JavaFX & SWT 0
D Swing SwingUtils / Thread Problem AWT, Swing, JavaFX & SWT 3
T Swing Problem mit Datum und FormattedTextField AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben