我使用jfreechart繪製關於計算機中操作記錄器的圖形。繪製一個塊,而不是jfreechart中的點
例如: 1:2012/09/39/28 6點55分37秒 8秒0x1c0c762 終端 --geometry = 134x35 --display:0.0 --role = TERMINAL-0x10591b0-16869-1343137248 - 終端「 - 終端 - 終端@ akagi:〜」 2:2012年/ 09/39 /終端 - 終端「 - 顯示菜單欄 - 顯示邊界 - 隱藏工具欄 - 28 6點55分41秒 8秒0x1600313 /usr/lib中/ XFCE4/notifyd/XFCE4-notifyd 「XFCE4-notifyd」, 「XFCE4-notifyd」 「XFCE4-notifyd」
現在,我可以繪製每一點就像(2012/09/39/28 06:55:37,終端),scilicet:x軸是2012/09/39/28 06:55:37,Y軸是:終端(我使用1來呈現終端,就像終端一樣的其他命令。 .. 2:/ usr/lib中/ XFCE4/notifyd/XFCE4-notifyd等...)
但我需要的是繪製的方塊,如:
終端1:_ __ _ __ _ _ _S ||||||
/usr/lib中/ XFCE4/notifyd/XFCE4-notifyd2:_ __ _ __ _ __ _ ___ _S ||||||
COM 3:_ __ _ _S ||||| (S:開始,例如:2000/12/12 09:22:10開始) ..... (當第一個命令結束時,另一個會開始,我只能開始,這意味着後命令是一個命令的結束時間)
但:1:S 2:S 3:S
這裏的一些代碼給你。
private XYDataset createDataset() {
Calendar precal;
Calendar postcal;
this.flags = modelfocus.getListflag();
commands = modelfocus.getListCommand();
DateFormat formatedate = new SimpleDateFormat("yyyy/MM/ww/dd HH:mm:ss");
precal = Calendar.getInstance();
postcal = Calendar.getInstance();
for (int i = 0; i < countCom; i++) {
this.series[i] = new TimeSeries(commands.get(i));
}
for (Focus listTxt : modelfocus.getList()) {
try {
Date d = new Date();
d = formatedate.parse(listTxt.date2String());
System.out.println(d);
precal.setTime(d);
//postcal.setTime();
} catch (ParseException e) {
System.out.println("Can't change this date");
e.printStackTrace();
}
String eachCmd = listTxt.getCommand();
for (int i = 0; i < countCom; i++) {
if (eachCmd == commands.get(i)) {
series[i].addOrUpdate(new Second(precal.getTime()),
flags.get(i));
}
}
}
TimeSeriesCollection dataset = new TimeSeriesCollection();
for (int i = 0; i < countCom; i++) {
dataset.addSeries(this.series[i]);
}
return dataset;
}
請能有人給予幫助解決這個問題,非常感謝你。
確定。我改變了解決問題的方法。我使用甘特圖。但您的信息對我仍然有幫助。謝謝^^ – WUJ 2013-03-05 14:23:17