【发布时间】:2016-11-01 03:28:51
【问题描述】:
我正在编写一个小程序来创建一个 gui 来显示 csv 文件的内容。我尝试按照 Oracle 网站 (http://docs.oracle.com/javase/tutorial/uiswing/components/table.html#data) 的大纲进行操作,但我的问题是用于构建表的 'getColumnCount' 方法无法访问 'headers' 变量。或者更有可能,它可以,但我认为我在 main 方法中对它所做的更改并没有连接到它。如果任何人都可以阐明什么是错误的以及如何解决它,将不胜感激。
public class MyTableModel implements TableModel {
private String[] headers; //This line.
private Object[][] tableData;
public static void main(String[] args) {
String fileName = "products.csv";
String[] csvList = readCSV(fileName);
String[] headers = Arrays.copyOfRange(csvList, 0, 10); //Or maybe this line isn't changing the one above.
}
private static String[] readCSV(String file) {
//Some code to fill the list.
return fileString;
}
@Override
public int getColumnCount() {
return headers.length; //<<This line of code
}
}
@Hovercraft 满满的鳗鱼
哦,我应该提到的。我是这样实现这个类的,也就是说,我是从别处调用的。
private static void createGUI() {
csvTabler table = new csvTabler();
table.setTitle("CSV Table");
table.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
table.createJTable();
table.pack();
table.setVisible(true);
}
private void createJTable() {
jTable = new JTable(new MyTableModel());
}
我确定这会影响您的解决方案,但我不确定如何调整..
【问题讨论】:
标签: java swing jtable private tablemodel