gpt4 book ai didi

java - 为什么甘特图中没有显示正确的数据?

转载 作者:行者123 更新时间:2023-11-30 11:17:29 25 4
gpt4 key购买 nike

大家好,你们好吗?

我做了一个java应用来管理任务,打算做子任务的甘特图。

我做了以下操作,但数据显示不正确。

正如您从我发布的图片中看到的那样,虽然它们出现了 3 个条形,但它们仅显示来自单个子任务的数据。左边什么也没有出现。我不知道为什么会这样。

有谁能帮我解决这个小问题吗?

查询结果:

SubTask    StartDate      EndDate
T3.1 2014-04-29 2014-06-05
T3.2 2014-06-05 2014-06-05
T3.3 2014-06-09 2014-06-09

代码

public class GantDemo {

private static Date date(int day, int month, int year) {

Calendar calendar = Calendar.getInstance();
calendar.set(year, month, day);
Date result = calendar.getTime();
return result;
}

public static void main(String[] args) {

Connection con = null;
TaskSeriesCollection collection = new TaskSeriesCollection();

/* MySQL */
String databaseURL = "jdbc:mysql://localhost:3306/tasks1.5";
String driverName = "com.mysql.jdbc.Driver";
String user = "****";
String password = "*****";
try {
Class.forName(driverName).newInstance();
} catch (Exception ex) {
System.out.println("");
}

try {
con = DriverManager.getConnection(databaseURL, user, password);

if (!con.isClosed()) {
System.out.println("Successfully connected to the DataBase Server...");
}

Statement statement;
statement = con.createStatement();
String selectQuery = "SELECT idSubTask, startDate, endDate FROM tasks where idTask like 'T3' ";
ResultSet resultSet = null;
resultSet = statement.executeQuery(selectQuery);
if (resultSet != null) // Success
{
while (resultSet.next()) {


String idSubTask = (String) resultSet.getObject("idSubTask ");
String startDate= (String) resultSet.getObject("startDate");
String endDate = (String) resultSet.getObject("endDate ");

SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd");
Date dateS = sdf2.parse(dataInicio);
SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy-MM-dd");
Date dateF = sdf3.parse(dataFim);

//DELETE
System.out.println("" + idSubTask + " " + startDate+ " " + endDate );

TaskSeries schedule1 = new TaskSeries("Scheduled Tasks");
schedule1.add(new Task(idSubTask,
new SimpleTimePeriod(dateS, dateE)));

collection.add(schedule1);

}
}
resultSet.close();

} catch (Exception e) {
System.out.println("" + e);
}
IntervalCategoryDataset dataset = collection;
JFreeChart chart = ChartFactory.createGanttChart(
"Gantt Chart Example", // chart Heading
"SubTask", // X-axis label
"Date", // Y-axis label
dataset, // dataset
true, // legend
true, // tooltips
false // urls
);
chart.setBackgroundPaint(new Color(0xff, 0xff, 0xcc));
ChartFrame frame = new ChartFrame("Gantt Chart", chart);
frame.setVisible(true);
frame.setSize(400, 350);
}
}

enter image description here

最佳答案

您将在每次迭代中覆盖您的 TaskSeries。仅将 TaskSeries 对象添加到集合中一次。

例子:

public class GantDemo {
public static void main(String[] args) throws ParseException {

TaskSeriesCollection collection = new TaskSeriesCollection();
List<SubTask> list = new ArrayList<SubTask>();
list.add(new SubTask("T3.1", "2014-04-29", "2014-06-05"));
list.add(new SubTask("T3.2", "2014-06-05", "2014-06-15"));
list.add(new SubTask("T3.3", "2014-06-09", "2014-06-19"));
TaskSeries schedule1 = new TaskSeries("Scheduled Tasks");
for (SubTask task : list) {
Date dateS = new SimpleDateFormat("yyyy-MM-dd")
.parse(task.startDate);
Date dateE = new SimpleDateFormat("yyyy-MM-dd").parse(task.endDate);

schedule1.add(new Task(task.taskId, new SimpleTimePeriod(dateS,
dateE)));

}
collection.add(schedule1);
System.out.println(collection.toString());

IntervalCategoryDataset dataset = collection;
JFreeChart chart = ChartFactory.createGanttChart("Gantt Chart Example",
"SubTask", // X-axis label
"Date", // Y-axis label
dataset, // dataset
true, // legend
true, // tooltips
false // urls
);
chart.setBackgroundPaint(new Color(0xff, 0xff, 0xcc));
ChartFrame frame = new ChartFrame("Gantt Chart", chart);
frame.setVisible(true);
frame.setSize(400, 350);
}

private static class SubTask {
private String taskId;
private String startDate;
private String endDate;

public SubTask(String taskId, String startDate, String endDate) {
super();
this.taskId = taskId;
this.startDate = startDate;
this.endDate = endDate;
}
}
}

另一件事是你的日期被覆盖所以图表不会绘制(子任务 2 和 3)

关于java - 为什么甘特图中没有显示正确的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24323150/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com