Jtable在java中创建TextArea
我需要一些帮助来理解为什么ArrayList没有被填充 我试图将存储在JFrame上的jTable中的信息传递到JTextArea,但当它在另一个JFrame上时,我现在有以下代码,但由于某些原因,信息没有被传递,它保持为空 我不想让任何人帮我做我的工作我只需要被指向正确的方向 这是我到目前为止所做的代码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
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);