从ArrayList

时间:2015-10-11 03:49:50

标签: java swing model-view-controller arraylist

我真的不确定如何提出这个问题,因为它非常令人困惑。我有一个具有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结构,我需要打破代码:这是期望的结果: enter image description here

修改 我已经实现了这个代码,它给了我想要的输出,但现在无法使用[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>

1 个答案:

答案 0 :(得分:1)

创建一个POJO,代表单个记录所需的基本信息。

从数据库加载数据时,将此数据加载到POJO中。

现在,对于每个面板,您只需要传递一个对象,这意味着您现在可以使用简单的迭代器来取而代之