gpt4 book ai didi

java - 尝试读取文件并将其值添加到 JFrame 时出现问题

转载 作者:行者123 更新时间:2023-12-02 06:16:38 25 4
gpt4 key购买 nike

尝试从文件文件添加一些值时遇到此错误:

Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 0 >= 0

这是我的代码:

    FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);

while (br.ready()) {

line = br.readLine();
st = new StringTokenizer(line, "|");

JTable table = new JTable();
table.setModel(new DefaultTableModel(new Object[0][], new String[] { "TEST", "TEST2","TEST3"}));
chargeTable = (DefaultTableModel)table.getModel();

while (st.hasMoreElements()) {
rowData.add(st.nextElement());
}

if (!rowData.isEmpty()) {
tabelaCarregada.addRow(rowData);
rowData.clear();
}

}

br.close();
fr.close();

JFrame jd;
jd = new Tabela(chargeTable);
jd.pack();
jd.setVisible(true);

我只是读取一个文件,然后尝试将文件中的每一行添加到表中并将其放入 JFrame 中。

文件内部是这样的:

示例1|示例2|示例3

示例1|示例2|示例3

示例1|示例2|示例3

示例1|示例2|示例3

示例1|示例2|示例3

我做错了什么?这个错误让我很困惑。

感谢您的帮助。

更新:

    FileReader fr = new FileReader(arq);

BufferedReader br = new BufferedReader(fr);
String line;
StringTokenizer st;
Vector<Object> rowData = new Vector<Object>();

chargeTable = new DefaultTableModel(new Object[0][], new String[] {"Teste1", "Teste2"});

while (br.ready()) {
line = br.readLine();
st = new StringTokenizer(line, "|");

while (st.hasMoreElements()) {
rowData.add(st.nextElement());
}

if (!rowData.isEmpty()) {
chargeTable.addRow(rowData);
rowData.clear();
}

}

JTable table = new JTable();
table.setModel(chargeTable);

br.close();
fr.close();

JScrollPane sp = new JScrollPane();
sp.add(table);

JFrame jd = new JFrame();
jd.add(sp);
jd.pack();
jd.setVisible(true);

最佳答案

  1. 您应该在开始读取数据之前(即在 while 循环之外)创建一个 DefaultTableModel。该模型将仅包含列名称。
  2. 然后,对于从文件中读取的每一行数据,您创建一个 vector ,并将标记生成器中的每个标记添加到该 vector 中。
  3. 然后将 Vector 添加到 DefaultTableModel
  4. 处理完文件中的所有数据行后,您可以使用 DefaultTableModel 创建 JTable。
  5. 将 JTable 添加到 JScrollPane 并将滚动 Pane 添加到框架。

编辑:

  1. 有一个构造函数仅用于指定列名称(行数为 0)。

  2. 您需要为添加到模型的每一行创建一个新的行 vector 。

  3. 不要使用clear()方法,因为这会删除您刚刚添加的数据。

  4. 您无法将表格添加到滚动 Pane 。您将表添加到滚动 Pane 的视口(viewport)中。最简单的方法是创建滚动 Pane 。 JScrollPanescrollPane = new JScrollPane(table);

关于java - 尝试读取文件并将其值添加到 JFrame 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21389598/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com