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
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
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