我想补一组双元素,与JTable中列摆放的元素,我试着用“for”循环,但该算法是不相关的:如何通过JTable列元素填充一组元素?
for (int i = 0 ; i < nRow ; i++)
{
double ad [ ] = { (double)dtm.getValueAt(i, 1)};
}
的问题是,当“i”变量等于一个新值(例如1或2),最后一个值被新值替换。
什么算法允许填充集?
我想补一组双元素,与JTable中列摆放的元素,我试着用“for”循环,但该算法是不相关的:如何通过JTable列元素填充一组元素?
for (int i = 0 ; i < nRow ; i++)
{
double ad [ ] = { (double)dtm.getValueAt(i, 1)};
}
的问题是,当“i”变量等于一个新值(例如1或2),最后一个值被新值替换。
什么算法允许填充集?
感谢@camick和@madprogrammer更新了代码,根据需要这可能是最佳的。
public Object[] getColumnData(JTable table, int targetColIndex) {
DefaultTableModel dtm = (DefaultTableModel) table.getModel();
int nRow = dtm.getRowCount(), nCol = dtm.getColumnCount();
if(table== null)
return null;
if(targetColIndex > nCol)
return null;
Object[] tableData = new Object[nRow];
for (int i = 0 ; i < nRow ; i++)
tableData[i] = dtm.getValueAt(i,targetColIndex);
return tableData;
}
嗨检查上述可能会帮助你。
一种过度杀伤因为op只能从第一列中获取数值 – MadProgrammer
如果您查看OP的最后2个问题,您将看到OP需要表中3个不同列的数据。所以这是正确的方法,但是您的方法应该接收表和列索引,并返回该列的数组。然后,方法可以被调用3次。修复方法,你会得到我的投票。 – camickr
那么,要求是返回数组中的double值,而不是对象,但我反正投了票。 – camickr
您需要将阵列的个体价值的每个元素分配,例如...
TableModel dtm = ...;
int nRow = dtm.getRowCount();
double ad[] = new double[nRow];
for (int i = 0 ; i < nRow ; i++)
{
ad[i] = (double)dtm.getValueAt(i, 1);
}
更多细节
见Arrays现在你正在使用的阵列。你想使用一个集合还是一个数组? – fdsa
我想要得到像这样的结果ad [] = {1,4,5,8,9 ....等等}这只是一个例子,但它是我希望最后得到的那种结果,因为数字在表格的大括号之间 – user4830457
在Java中,那些{}表示一个数组(__not__是一个像数学的集合)。数组有固定的大小,你必须添加索引。 http://docs.oracle.com/javase/7/docs/api/java/util/HashSet.html https://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html – fdsa