2015-05-01 59 views
1

我想显示与此图案结果集值:如何填写2 d阵列动态

Object rowData[][] = { { url , tags , text }, { url , tags , text } };

我的代码是:

while (res.next()) { 
    String url = res.getString(1); 
    String tags = res.getString(2); 
    String text = res.getString(3); 
} 
Object rowData[][] = { { "Row1-Column1", "Row1-Column2", "Row1-Column3" }, 
       { "Row2-Column1", "Row2-Column2", "Row2-Column3" } }; 

Object columnNames[] = { "URL", "Tag Information", "Text" }; 
JTable table = new JTable(rowData, columnNames);` 
+1

请用'这种风格为您code'。更可读。 – Shondeslitch

+2

请问您可以多描述一下您为什么通过动态理解。因为它不够清楚你想要什么! – Parth

+0

@Parth如果结果集返回两个值,那么数组将会是rowData [] [] = {{url,tags,text},{url,tags,text}},我想在数组“rowData”中添加reslut set值。 }; url,tags,text是我的数据库颜色名称 –

回答

0

看这个简单的例子:

public static void main(String[] args) { 

    int rows = 3; //res.getCount() ? 
    int columns = 3; 

    Object[][] rawData = new Object[rows][columns]; 

    for(int row = 0; row < rows; row++){ 
     rawData[row][0] = row + " - url"; 
     rawData[row][1] = row + " - tags"; 
     rawData[row][2] = row + " - text"; 
    } 

    System.out.println(Arrays.toString(rawData[0])); // print first row 
} 

字符串串联内部是一个非常糟糕的主意,但这应该是只是一个例子

0

下面是conde片段,它可以用来实现你想要的。

int rowcount = 0; 
if (res.last()) { 
    rowcount = res.getRow(); 
    res.beforeFirst(); 
} 
Object rowData[][] = new Object[rowcount][]; 
int count = 0; 
while (res.next()) { 
    rowData[count] = new Object[] {res.getString(1),res.getString(1),res.getString(3)}; 
    count++; 
} 
Object columnNames[] = { "URL", "Tag Information", "Text" }; 
JTable table = new JTable(rowData, columnNames); 
1

使用列表来存储数据的每个文件,然后将列表转换为数组:

List<Object[]> data = new ArrayList<Object[]>(); 
while (res.next()) { 
    data.add(new Object[]{res.getString(1), res.getString(2),res.getString(3)}); 
} 

Object[][] rowData = data.toArray(new Object[0][0]); 
JTable table = new JTable(rowData, columnNames);