Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jtable在java中创建TextArea_Java_Swing_Netbeans_Arraylist_Jtable - Fatal编程技术网

Jtable在java中创建TextArea

Jtable在java中创建TextArea,java,swing,netbeans,arraylist,jtable,Java,Swing,Netbeans,Arraylist,Jtable,我需要一些帮助来理解为什么ArrayList没有被填充 我试图将存储在JFrame上的jTable中的信息传递到JTextArea,但当它在另一个JFrame上时,我现在有以下代码,但由于某些原因,信息没有被传递,它保持为空 我不想让任何人帮我做我的工作我只需要被指向正确的方向 这是我到目前为止所做的代码 public ArrayList<String> extractTableInfo() { DefaultTableModel model = (Default

我需要一些帮助来理解为什么ArrayList没有被填充

我试图将存储在JFrame上的jTable中的信息传递到JTextArea,但当它在另一个JFrame上时,我现在有以下代码,但由于某些原因,信息没有被传递,它保持为空

我不想让任何人帮我做我的工作我只需要被指向正确的方向

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

     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;
}
这是在第一帧中,在第二帧中我这样做了

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)));
    }
private ArrayList infoget=new ArrayList();
公共编辑(ArrayList getinfo)
{ 
初始化组件();
this.infoget=getinfo;
}
对于(inti=0;i

它是这样工作的

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

此外,还可以改进下面的循环:

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

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

既然你吵架了

extractedInfo.add(rowInfo);

在代码中,如果执行了该行,
extractedInfo
不应为空。即使
rowInfo
null
,但它从来都不是,它也会被添加到列表中。记住这一点,您是否确定
nRow
(和
nCol
)大于零?这是我能看到的阻止执行所提到的行的唯一原因。

或者更好:不要将所有元素从一个列表复制到另一个列表:这完全没有必要。直接使用gt.extractTableInfo()返回的列表我做了一些测试,并尝试将extractTableInfo()放入同一个jFrame中,返回值不是空的。显示的数据,我想问题是当我将数据从一个jFrame传递到另一个jFrame时,ArrayList extractedInfo=gt.extractTableInfo();对于(int i=0;ijbutton3aactionperformed,并检查
TableInformation
是否为空或仅包含空字符串。TableInformation为空,我将创建一个重载构造函数并从那里传递数组列表,是否可以将重载构造函数设置为数据类型ArrayList?我的错,我的意思是检查
gt.extractTableInfo()
是否返回空列表或仅返回空字符串的列表。如果是这样的话,那就意味着
gt.extractTableInfo()
与您在使用它时使用的对象不在同一对象上运行。还有,我不太明白你的问题。你想超负荷做什么?我正在考虑做类似的事情。遵循命名约定是一种很好的做法。在Java中,惯例是只有类名有第一个大写字母。因此,您的
TableInformation
按惯例应称为
TableInformation
。遵循这些约定将提高代码的可读性-例如,乍一看
TableInformation.get(i)
对我来说就像一个静态调用。
for (int i = 0; i < gt.extractTableInfo().size(); i++) {
   TableInformation.add(gt.extractTableInfo().get(i));
}
ArrayList<String> extractedInfo = gt.extractTableInfo();
for (int i = 0; i < extractedInfo.size(); i++) {
   TableInformation.add(extractedInfo.get(i));
}
TableInformation.addAll(gt.extractTableInfo());
extractedInfo.add(rowInfo);