j表。来自文本文件的行排序()
jTable. row sorting() from text file
我有一个关于排序的问题 jTable1
我在这个论坛上看了几个已经问过的关于这个问题的问题,但似乎没有答案对我有用,我如何设置在一个常规顺序而不是 1, 10, 11...2, 20, 21,... 3,.. 等等。我如何修改这段代码 jTable1.setAutoCreateRowSorter(true);
因为它似乎没有正常工作。这是我当前使用的代码。
try {
FileReader fR = new FileReader("table.txt");
BufferedReader br = new BufferedReader(fR);
String firstLine = br.readLine().trim();
String[] columnsName = firstLine.split(",");
DefaultTableModel model = (DefaultTableModel)jTable1.getModel();
model.setColumnIdentifiers(columnsName);
Object[] tableLines = br.lines().toArray();
for(int i = 0; i < tableLines.length; i++)
{
String line = tableLines[i].toString().trim();
String[] dataRow = line.split("/");
model.addRow(dataRow);
}
jTable1.setAutoCreateRowSorter(true);
} catch (IOException ex) {
Logger.getLogger(NewJFrame3.class.getName()).log(Level.SEVERE, null, ex);
}
@MadProgrammer 发表的评论是正确答案。您需要插入一行数值(即 - Integer[]、Float[]、Double[] 等),而不是您现在使用的 String[]。
有关如何进行此转换的示例,以下是如何使用您的一些代码作为起点将 String[] 转换为 Integer[]
String line = tableLines[i].toString().trim();
String[] dataRow = line.split("/");
int dataRowLength = dataRow.length;
Integer[] dataRowIntegers = new Integer[dataRowLength];
for(int i = 0; i < dataRowLength; i++){
dataRowIntegers[i] = Integer.valueOf(dataRow[i]);
}
model.addRow(dataRowIntegers);
希望对您有所帮助!
我有一个关于排序的问题 jTable1
我在这个论坛上看了几个已经问过的关于这个问题的问题,但似乎没有答案对我有用,我如何设置在一个常规顺序而不是 1, 10, 11...2, 20, 21,... 3,.. 等等。我如何修改这段代码 jTable1.setAutoCreateRowSorter(true);
因为它似乎没有正常工作。这是我当前使用的代码。
try {
FileReader fR = new FileReader("table.txt");
BufferedReader br = new BufferedReader(fR);
String firstLine = br.readLine().trim();
String[] columnsName = firstLine.split(",");
DefaultTableModel model = (DefaultTableModel)jTable1.getModel();
model.setColumnIdentifiers(columnsName);
Object[] tableLines = br.lines().toArray();
for(int i = 0; i < tableLines.length; i++)
{
String line = tableLines[i].toString().trim();
String[] dataRow = line.split("/");
model.addRow(dataRow);
}
jTable1.setAutoCreateRowSorter(true);
} catch (IOException ex) {
Logger.getLogger(NewJFrame3.class.getName()).log(Level.SEVERE, null, ex);
}
@MadProgrammer 发表的评论是正确答案。您需要插入一行数值(即 - Integer[]、Float[]、Double[] 等),而不是您现在使用的 String[]。
有关如何进行此转换的示例,以下是如何使用您的一些代码作为起点将 String[] 转换为 Integer[]
String line = tableLines[i].toString().trim();
String[] dataRow = line.split("/");
int dataRowLength = dataRow.length;
Integer[] dataRowIntegers = new Integer[dataRowLength];
for(int i = 0; i < dataRowLength; i++){
dataRowIntegers[i] = Integer.valueOf(dataRow[i]);
}
model.addRow(dataRowIntegers);
希望对您有所帮助!