【问题标题】:Creating a Vector<Vector<String>> to import .txt file into a JTable创建 Vector<Vector<String>> 以将 .txt 文件导入 JTable
【发布时间】:2013-04-19 17:05:30
【问题描述】:

我在从一维向量“v”转换到二维向量“myVector”时遇到问题。如果您能帮我解决这个问题,将不胜感激。接受任何建议。

import java.io.BufferedReader;
import java.io.FileReader;
import java.util.Vector;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;

public class InsertDataFinal {

public static void main(String args[]) {
    Vector<String> v = new Vector<String>(3);

    Vector<Vector<String>> myVector = new Vector<Vector<String>>();
    int i = 0;
    int j = 0;
    try {

        FileReader fReader = new FileReader("Password.txt");
        BufferedReader inFile = new BufferedReader(fReader);
        String input;
        String[] temp;
        while ((input = inFile.readLine()) != null) {

            temp = input.split(" ");

            for (i = 0; i < temp.length; i++) {

                v.add(temp[i]);
            }

            myVector.add(j, v);
            j++;
        }

    } catch (Exception e) {
        System.out.println("ERROR");
    }

    Vector<String> columnNames = new Vector<String>(3);
    columnNames.addElement("Website");
    columnNames.addElement("Username");
    columnNames.addElement("Password");
    DefaultTableModel model = new DefaultTableModel(myVector, columnNames);
    JTable table = new JTable();
    table.setModel(model);
    JScrollPane scrollpane = new JScrollPane(table);
    JPanel panel = new JPanel();
    panel.add(scrollpane);
    JFrame frame = new JFrame();
    frame.add(panel, "Center");
    frame.pack();
    frame.setVisible(true);
    }
}

【问题讨论】:

  • FileReader 和 BufferedReader 将是 close() 并在 finally 块中
  • sscce+1。

标签: java swing vector jtable file-io


【解决方案1】:

您的示例继续扩展一个名为 vVector&lt;String&gt; 实例。相反,创建一个新实例并将其添加到myVector。此外,限制变量的范围并捕获最具体的异常。

Vector<Vector<String>> myVector = new Vector<Vector<String>>();
try {
    FileReader fReader = new FileReader("temp.txt");
    BufferedReader inFile = new BufferedReader(fReader);
    String input;
    while ((input = inFile.readLine()) != null) {
        String[] temp = input.split(" ");
        Vector<String> v = new Vector<String>(3);
        for (int i = 0; i < temp.length; i++) {
            v.add(temp[i]);
        }
        myVector.add(v);
    }
} catch (IOException e) {
    e.printStackTrace(System.err);
}

【讨论】:

    猜你喜欢
    • 2014-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-20
    • 2013-03-15
    • 2012-03-02
    • 1970-01-01
    相关资源
    最近更新 更多