我想補一組雙元素,與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