Jtable to TextArea in java



我需要一些帮助来理解为什么数组列表没有被填充,

我试图传递信息存储在一个JFrame上的jTable到另一个JFrame上的JTextArea,我目前有以下代码,但由于某种原因信息没有被传递,它保持空

我不需要任何人为我做我的HW,我只需要在正确的方向,

这是我到目前为止所做的代码。

     public ArrayList<String> extractTableInfo() {
    DefaultTableModel model = (DefaultTableModel) jTable1.getModel();
    int nRow = model.getRowCount(), nCol = model.getColumnCount();

    ArrayList<String> extractedInfo = new ArrayList<String>();
    String rowInfo = "";
    for (int i = 0; i < nRow; i++) {
        for (int j = 0; j < nCol; j++) {
            rowInfo = rowInfo + (String) model.getValueAt(i, j);
        }
        extractedInfo.add(rowInfo);
    }
    return extractedInfo;
}

在第一个JFrame和第二个JFrame on按钮中点击我有

     private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {                                         

    Generate_Teams gt = new Generate_Teams();
     ArrayList<String> TableInformation = new ArrayList<String>();
     for(int i =0; i < gt.extractTableInfo().size(); i++){         
     TableInformation.add(gt.extractTableInfo().get(i));
     }

    for (int i = 0; i < TableInformation.size(); i++) {
        jTextArea1.append(TableInformation.get(i));
    }

}                                        

我很感激你能给予的任何帮助。

提前谢谢.....

修复……

谢谢你的帮助,把它修好了,

 Edit ed = new Edit(extractTableInfo());
 ed.setVisible(true);

在第一帧中在第二帧中我做了这个

private ArrayList<String> infogot = new ArrayList<String>();
  public Edit(ArrayList<String> getinfo)
 { 
   initComponents();
   this.infogot = getinfo;
 }

   for (int i = 0; i < infogot.size(); i++) {
      jTextArea1.append(String.valueOf(infogot.get(i)));
    }

是这样的

试着调试你的代码。添加print语句来检查extractTableInfo方法返回的ArrayList是否包含表的内容可能会有所帮助。

同样,下面的循环也可以改进:

for (int i = 0; i < gt.extractTableInfo().size(); i++) {
   TableInformation.add(gt.extractTableInfo().get(i));
}

这看起来就像每当你调用extractTableInfo时,你都在创建一个新的数组列表,并一次又一次地从表中填充它。

而不是使用:

ArrayList<String> extractedInfo = gt.extractTableInfo();
for (int i = 0; i < extractedInfo.size(); i++) {
   TableInformation.add(extractedInfo.get(i));
}

或者更好,使用:

TableInformation.addAll(gt.extractTableInfo());

如果我理解正确,你的问题是extractTableInfo()总是返回一个空的ArrayList。

因为你有

extractedInfo.add(rowInfo);

在你的代码中,extractedInfo不应该是空的,如果那一行被执行。即使rowInfonull,它也不会被添加到列表中。考虑到这一点,您是否确定 nRow(和nCol)大于零?这是我能看到的唯一能阻止上述行执行的原因。

相关内容

  • 没有找到相关文章

最新更新