繁体   English   中英

从ArrayList向JLabel分配文本

[英]Assign text to JLabels from 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个。 也许我需要将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>

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM