当前位置: 首页 > 知识库问答 >
问题:

将arraylist值传递给jtable

叶健柏
2023-03-14

我一直试图从一个对象数组填充一个JTable,但是什么也没有显示出来。下面是填充表的方法代码。system.out.println使我能够检查数据是否正确传递,变量中是否有值。这是来自界面的:

public void populateTable(ArrayList<Outlet> outletList, String selection){
    f = new Fourth();
    for(int i = 0; i<outletList.size(); i++){
        if(outletList.get(i).getCity().equalsIgnoreCase(selection)){
            if(outletList.get(i).getStatus().equals("ACTIVE")){

                String bar = outletList.get(i).getBarangay();
                String code = Integer.toString(outletList.get(i).getCode());
                String name = outletList.get(i).getName();


                System.out.println(bar);
                System.out.println(code);
                System.out.println(name);

                Object[] data = {bar, code, name};   

                System.out.println("DATA: " + data[0].toString()); //correct
                System.out.println("DATA: " + data[1].toString()); //correct
                System.out.println("DATA: " + data[2].toString()); //correct

                f.getDtm().addRow(data);
            }   
        }   
    } 
}
 cityCombobox1.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            selCity1 = cityCombobox1.getSelectedItem().toString();
            if(itr.next() == "Non-Citadel"){
                outlet.populateTable(outletList1, selCity1);
            }
        }
String[] columnNames = new String[]{"Barangay", "Name", "Code"};
    dtm = new DefaultTableModel(columnNames, 0);
    pjpTable = new JTable(dtm);        

    scrollPane = new JScrollPane(getPjpTable());
    tablePanel.add(new JScrollPane(getPjpTable()));

    mainFrame.add(mainPanel);
    mainFrame.add(tablePanel,BorderLayout.SOUTH);

即使来自接口的数据显示在控制台中,也只显示表头。如果有人能解决如何正确地将数据值传递给JTable,那就太棒了!

共有1个答案

明安阳
2023-03-14

我想这个代码有问题

String[] columnNames = new String[]{"Barangay", "Name", "Code"};
    dtm = new DefaultTableModel(columnNames, 0); // here dtm is blank (No Data available at the time of Initializing.

    pjpTable = new JTable(dtm);      //JTable is Initialized with a Blank Data.

因此,在将JTable初始化为new JTable(dtm)之前,应该用空白数据填充dtm

在这里,您只是更新DTM对象,而不是在向DTM添加新行后重新绘制表。

f.getDtm().addRow(data);
 cityCombobox1.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            selCity1 = cityCombobox1.getSelectedItem().toString();
            if(itr.next() == "Non-Citadel"){
                outlet.populateTable(outletList1, selCity1); // data is getting filled here.
            }
        }

还有一个建议。

如果(itr.next()==“non-citadel”)而不是==,则应使用equals方法。因为==用于检查字符串对象的引用,而equals用于比较实际值。

 类似资料:
  • 问题内容: 我有主片段,我想传递给类,在这里我将在ListView中显示结果。 片段类: 我有资料 现在,我想将“ allStudents”对象发送到新的活动类StudentResult();中。 我在片段类中使用: 在目标类中显示ListView()中的对象; 提前致谢! 问题答案: 在您的Fragment中创建一个自定义界面: 在您的活动中实现此接口: 现在,您必须重写声明的方法(在中): 然

  • 我想使用不同项目的jasper报告生成一个账单。为此,我定义了一些字符串数组,希望在账单中显示为项目列表。 我填写jasper报告的代码如下 Sling数组用于填充ArrayList,这些ArrayList被传递到HashMap以填充我的报告。HasMap键是在文件中声明Invoice.jrxml参数名称。参数名称被赋予如下文本文件 我想打印项目列表,但我得到的输出是单行逗号分隔值。 此处为示例输

  • 我需要你的帮助,在这个特殊的问题上,我想传递一个隐藏输入类型的值。jsp程序到servlet程序 我现在做的基本上是这样的 从servlet中我得到了值 它没有打印任何想法。jsp表单方法是post,servlet方法是doPost 有什么想法为什么它不传递参数吗?

  • 问题内容: 在我的ASP.NET MVC应用程序中,我希望用户将值添加到文本框中,然后按Ajax.ActionLink。我想做这样的事情: Ajax.ActionLink(“ Go”,“ Action”,“ Controller”,新的{value = textbox1.value}) 还是我还能如何使此文本框值返回到我的操作?jQuery的? 问题答案: 您可以使用AJAX $ .get方法运行

  • 问题内容: 我想按值将列表传递给函数。默认情况下,列表和其他复杂对象通过引用传递给函数。这是一些目标: 可以写得短些吗?换句话说,我不想更改 ad 。 问题答案: 您可以使用,但是对于包含列表(或其他可变对象)的列表,您应该使用: 等价于或,并返回列表的浅表副本。 何时使用: