问题描述
我正在使用Java NetBeans将JTable数据导入和导出到文本文件的项目中。我想在标题Status下显示一列JCheckBoxes。此外,在导入数据时,我希望文本文件为true时选择单个JCheckBoxes或文本文件为false时取消选择。
我的文本文件如下:
Index#Task#Type#Priority#Status
1#Play Piano#Personal#2#true#
2#Excersice 2.1 - Maths#Personal#5#false#
3#Play Games with Friends#Other#1#true#
不幸的是,当我将文本文件导入JTable时,它仅显示索引,任务,类型和优先级列。请有人可以解释为什么是这种情况,以及如何纠正此错误。预先感谢。
这是我用于导出数据的代码:
private void btnExportActionPerformed(java.awt.event.ActionEvent evt) {
try {
FileWriter fw = new FileWriter("TaskInfo.txt");
BufferedWriter bw = new BufferedWriter(fw);
PrintWriter pw = new PrintWriter(bw);
for(int row = 0; row < tblTaskInfo.getRowCount(); row++) {
String headers = String.valueOf(tblTaskInfo.getColumnName(row));
pw.print(headers);
pw.print("#");
}
pw.println("");
for(int row = 0; row < model.getRowCount(); ++row) {
for(int column = 0; column <model.getColumnCount(); ++column)
{
String s = model.getValueAt(row,column).toString();
pw.print(s);
pw.print("#");
}
pw.println("");
}
pw.close();
JOptionPane.showMessageDialog(null,"File Saved");
}catch(Exception ex)
{
JOptionPane.showMessageDialog(null,"Failure");
}
}
这是我导入数据的代码:
private void btnImportActionPerformed(java.awt.event.ActionEvent evt) {
try {
FileReader fr = new FileReader("TaskInfo.txt");
BufferedReader br = new BufferedReader(fr);
// get the first line
// get the columns name from the first line
// set columns name to the jtable model
String firstLine = br.readLine().trim();
String[] columnsName = firstLine.split("#");
DefaultTableModel model = (DefaultTableModel)tblTaskInfo.getModel();
model.setColumnIdentifiers(columnsName);
// get lines from txt file
Object[] tableLines = br.lines().toArray();
// extratct data from lines
// set data to jtable model
for(int i = 0; i < tableLines.length; i++)
{
String line = tableLines[i].toString().trim();
String[] daTarow = line.split("#");
model.addRow(daTarow);
}
} catch (Exception ex) {
Logger.getLogger(Task.class.getName()).log(Level.SEVERE,null,ex);
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)