现在我的问题是我不想出现单词“ HELLO”(
这些是项目的要求-我想出现在文本文件中,但我不在jtable中)。我的文本文件是text_file,但是在我看来jtable中我需要两行而不是一行。我的表格视图是table_view
我的代码是
public class Table {
JFrame f;
Vector data;
public Table() {
try {
File file = new File("test.txt");
FileReader reader = null;
try {
reader = new FileReader(file);
} catch (FileNotFoundException e) {
e.printStackTrace();
System.exit(1);
}
f = new JFrame();
String[] columnNames = {"Title", "Author", "isbn", "Date", "Kind"};
DefaultTableModel model = new DefaultTableModel(columnNames, 0);
BufferedReader infile = new BufferedReader(reader);
String line = "";
Vector<Object> row = new Vector<Object>(5);
while ((line = infile.readLine()) != null) {
if (line.isEmpty() || line.contains("HELLO"))
{
model.addRow(row);
row = new Vector<Object>(5);
} else {
row.add(line);
}
}
if (row.size() != 0)
{
model.addRow(row);
}
JTable table = new JTable(model);
JFrame f = new JFrame();
f.setSize(550, 350);
f.add(new JScrollPane(table));
f.setVisible(true);
} catch (IOException ex) {
Logger.getLogger(Table.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
最佳答案
我本来要回复您的最新帖子,但您删除了它:https://stackoverflow.com/questions/62229550/populate-data-from-text-file-in-jtable
您不应该创建自定义TableModel。您没有在模型中添加任何新功能。添加数据并不添加功能。
这次您的方法更合理,但是仍然过于复杂。使用Vector的要点是,您可以在读取数据时将数据添加到Vector中,这大大简化了逻辑。
在创建组件的主要逻辑中,代码流应类似于:
String[] columnNames = {"Title", "Author", "isbn", "Date", "Kind", "Field"};
DefaultTableModel model = new DefaultTableModel(columnNames, 0); // create empty model
Vector<Object> row = new Vector<Object>(6);
while ((line = infile.readLine()) != null)
{
if (line.isEmpty()) // all book info has been read add the book to the model
{
model.addRow( row );
row = new Vector<Object>(6);
}
else
row.add( line );
}
if (row.size() != 0) // add last book
model.addRow( row );
JTable table = new JTable( model );
JScrollPane scrollPane = new JScrollPane( table );
frame.add(scrollPane);
关于java - 将文本文件中的数据填充到JTable中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/62243149/