import java.util.Vector;import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;public class CopyOfuseTable {  static Vector<Vector<String>> vectors = new Vector<>();
 static Vector<String> vectorStr = new Vector<>();
 static Vector<String> titleVector = new Vector<>();



public static void main(String[] args) {
// TODO 自动生成的方法存根

JFrame frame = new JFrame("表格测试");

frame.setBounds(0,0,700,455);
frame.setLocationRelativeTo(null);

setVectorData();   

DefaultTableModel dfTableModel = new DefaultTableModel(vectors, titleVector);

JTable table = new JTable(dfTableModel);

JScrollPane scrollPane = new JScrollPane();
scrollPane.setViewportView(table);

frame.add(scrollPane);

frame.setVisible(true); }


 static public void setVectorData()
{

for (int k = 0; k < 10; k++) {
titleVector.add("表头"+k);
}

for(int i=0;i<100;i++)
{
for(int j =0;j<10;j++)
{
  String string = i+"数据"+j;
  System.out.println(string); //  为什么输出 跟   表格输出信息不一样?
   vectorStr.add(string);
}
   vectors.add(vectorStr);
}
}
}

解决方案 »

  1.   

    逻辑出错了,你的vectorStr是全局变量,每次都在往里面写东西,而每次写的东西又写入到vectors中,造成了数据的重复。所以我将vectorStr作为局部变量就行了。
    for(int i=0;i<100;i++)
    {
    Vector<String> vectorStr = new Vector();
    for(int j =0;j<10;j++)
    {
    String string = i+"数据"+j;
    //  System.out.println(string); //  为什么输出 跟   表格输出信息不一样?
    vectorStr.add(string);
    }
    vectors.add(vectorStr);
    }