【发布时间】:2016-01-08 18:19:10
【问题描述】:
我实际上不确定如何问这个问题,因为它非常令人困惑。我有一个具有 MVC 结构的 Java 应用程序,它从数据库中获取数据。我从 JDBC 查询中检索数据的 String ArrayList。它包含有关比赛中参赛者的信息(例如:姓名、Race_no、Start_Time、Swim_Time、Bike_Time、Finish_Time 等)。名单大小每周都会有所不同,具体取决于该周参加比赛的参赛者的数量。我从数据库中获取数据没有问题,但是当我将信息传递给控制器以传递给视图时,我无法将数据分配给 JLabel。到目前为止,数据是作为一个大数组发送的,所以我需要以某种方式将数组分成 12 个块(这是每个竞争对手需要设置多少个 JLabel)。然后,我将这 12 个 JLabel 中的每一个设置为自己的 JPanel ArrayList - 然后动态添加到一个 JPanel 以进行打印。我的问题是,我如何拆分 ArrayList 以获得前 12 个,然后是第二批 12,等等。我尝试做一个嵌套循环并将大小设置为 12,但当然每次只能获得前 12 个.也许我需要将 JDBC 结果集中的数据存储为其他东西。我真的需要一些指导,因为这已经卡了好几天了。
nb:我将它作为数据处理程序类中的一个大方法工作,我将使用 while(rs.next()) 来完成所有工作,但由于 MVC 结构,我需要打破编码:这是期望的结果:
编辑: 我已经实现了这段代码,它给了我想要的输出,但现在无法用 [j] 循环中的数据分配 JLabel 变量:
<pre>
public void getRaceLabels()
{
ArrayList<String[]> raceLabels = dh.getRaceTimeLabels();
//System.out.println(raceLabels);
for (int i = 0; i < raceLabels.size(); i++)
{
String[] element = (String[]) raceLabels.get(i);
//System.out.println(element);
for (int j = 0; j < element.length; j++)
{
System.out.print(element[j]+" ,");
}
System.out.println("break");
}
</pre>
【问题讨论】:
-
听起来你应该使用 JTable
-
是的,我可以做一个 JTable,但这不是客户想要的格式。他们希望能够在赛后将这些信息提供给竞争对手。
-
好的,听起来你应该使用 JasperReports
-
@MadProgrammer 我查看了 JasperReports,但因为所有其他报告都只是 JTables,所以我认为为一个报告实现此功能有点矫枉过正。此外,我们的时间框架很短,没有时间学习如何使用它。
标签: java swing model-view-controller arraylist