我有";" expected
错误,我已经尝试将“;”但是徒劳无功这是代码:
public static XYZDataset createDataset(JTable table )
{
DefaultXYZDataset defaultxyzdataset = new DefaultXYZDataset();
DefaultTableModel dtm = (DefaultTableModel) table.getModel();
int nRow = dtm.getRowCount(), nCol = dtm.getColumnCount();
double[][] ad = new double[nRow][1];
double[][] ad1 = new double[nRow][1];
double[][] ad2 = new double[nRow][1];
double ad3[][]=null;
for (int i = 0 ; i < nRow ; i++)
{
ad[i] = (double[]) dtm.getValueAt(i,1);
ad1[i] = (double[]) dtm.getValueAt(i,2);
ad2[i] = (double[]) dtm.getValueAt(i,3);
ad3[][]={ad[i],ad1[i],ad2[i]} ;
}
defaultxyzdataset.addSeries( "Series 1" , ad3 );
return defaultxyzdataset;
}
我在这一行有错误:ad3[][]={ad[i],ad1[i],ad2[i]}
答案 0 :(得分:1)
试
public static XYZDataset createDataset(JTable table )
{
DefaultXYZDataset defaultxyzdataset = new DefaultXYZDataset();
DefaultTableModel dtm = (DefaultTableModel) table.getModel();
int nRow = dtm.getRowCount(), nCol = dtm.getColumnCount();
double[][] ad = new double[nRow][1];
double[][] ad1 = new double[nRow][1];
double[][] ad2 = new double[nRow][1];
double ad3[][][]= new double[nRow][3][1];
for (int i = 0 ; i < nRow ; i++)
{
ad[i] = (double[]) dtm.getValueAt(i,1);
ad1[i] = (double[]) dtm.getValueAt(i,2);
ad2[i] = (double[]) dtm.getValueAt(i,3);
ad3[i]={ad[i],ad1[i],ad2[i]} ;
}
defaultxyzdataset.addSeries( "Series 1" , ad3 );
return defaultxyzdataset;
}
你现在的代码试图将一个数组分配给任何东西,因为ad3 [] []没有解释意义而没有[]中的一些数字。
答案 1 :(得分:0)
数组常量只能在array initializers中使用;请改用此语句:
ad3 = new double[][]{ad[i],ad1[i],ad2[i]};
答案 2 :(得分:0)
阵列初始化后,您无法使用数组常量。如果您在循环中声明并初始化ad3,它将起作用或者如果您这样做:
ad3= new double[][]{ad[i],ad1[i],ad2[i]} ;
有关进一步的讨论,请参阅此前question。
答案 3 :(得分:0)
答案 4 :(得分:0)
错误是由您在循环内为ad3
赋值的方式引起的。假设您确实希望在每次迭代期间为该数组分配新值,您必须按如下方式更改该行:
ad3 = new double[][] {ad[i],ad1[i],ad2[i]};
请注意,在循环之后意味着ad3
的内容将是ad[nRow - 1]
,ad1[nRow - 1]
和add[nRow - 1]
- 不清楚为什么你是在这种情况下完全使用循环。
答案 5 :(得分:0)
我解决了这个问题, 这是新代码
public static XYZDataset createDataset(JTable table )
{
DefaultXYZDataset defaultxyzdataset = new DefaultXYZDataset();
DefaultTableModel dtm = (DefaultTableModel) table.getModel();
int nRow = dtm.getRowCount(), nCol = dtm.getColumnCount();
for (int i = 0 ; i < nRow ; i++)
{
double ad [ ] = { (double)dtm.getValueAt(i, 1)};
double ad1 [ ] = { (double)dtm.getValueAt(i, 2)};
double ad2 [ ] = { (double)dtm.getValueAt(i, 3)};
double ad3[][]={ad,ad1,ad2} ;
}
defaultxyzdataset.addSeries( "Series 1" , ad3 );
return defaultxyzdataset;
}
&#13;