gpt4 book ai didi

java - 如何从 .csv 文件向 JTable 中的列添加标题

转载 作者:行者123 更新时间:2023-12-02 11:50:36 24 4
gpt4 key购买 nike

我想在 .csv 文件中的 JTable 列中添加标题。

您可以在图片上看到我的.csv 文件。

CSV file

我需要删除这段代码:private String[] columnNames = { "Country", "Capital", "Population"}; 而不是放置另一个函数,该函数可用于从 .csv 中的列名中获取列名文件。

我的主课:

public class App extends JFrame {
private Object[][] data;
private String[] columnNames = { "Country", "Capital", "Population" };
private DefaultTableModel tableModel;
private JTable table;
private CountryList myList;

public App(String title) {
super(title);
setBounds(10, 10, 400, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
myList = new CountryList();
myList.readFromCSV("data/country.csv");
data = myList.convert2Data();
tableModel = new DefaultTableModel(data, columnNames);
table = new JTable(tableModel);
table.setAutoCreateRowSorter(true);
JScrollPane scrollPane = new JScrollPane(table);
scrollPane.setPreferredSize(new Dimension(380, 280));
JPanel panel = new JPanel();
panel.add(scrollPane);
add(panel, BorderLayout.CENTER);
}

public static void main(String[] args) {
App myApp = new App("Basic JTable");
myApp.setVisible(true);
}
}

还有我的类(class) CountryList:

public class CountryList {
private ArrayList<Country> books;

public CountryList() {
books = new ArrayList<Country>();
}

public void add(Country sb) {
books.add(sb);
}

public void readFromCSV(String filename) {
File file = new File(filename);
FileReader reader = null;
try {
reader = new FileReader(file);
} catch (FileNotFoundException e) {
e.printStackTrace();
System.exit(1);
}
BufferedReader infile = new BufferedReader(reader);
String line = "";
try {
boolean done = false;
while (!done) {
line = infile.readLine();
if (line == null) {
done = true;
} else {
String[] tokens = line.trim().split(";");
String country = tokens[0].trim();
String capital = tokens[1].trim();
int population = Integer.parseInt(tokens[2].trim());
Country sb = new Country(country, capital, population);
books.add(sb);
}
}
} catch (IOException e) {
e.printStackTrace();
System.exit(1);
}
}

最佳答案

您可以读取 csv 文件并将第一行添加到 JTable 标题中。将以下方法添加到您的 CountryList 类中:

public String[] getColumnNames(String csvFileDestination){
BufferedReader br = null;
String line = "";
String[] columnNames;

try {

br = new BufferedReader(new FileReader(csvFileDestination));
while ((line = br.readLine()) != null) {

// use comma as separator
columnNames = line.split(",");
break;// Breaking out because you only need the first row

}
return columnNames;

} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (br != null) {
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return null;
}

并替换私有(private) String[] columnNames = { "Country", "Capital", "Population" };private String[] columnNames;并在构造函数中添加以下内容: columnNames = myList.getColumnNames("/path/to/csv/file.csv");

关于java - 如何从 .csv 文件向 JTable 中的列添加标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47897962/

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