繁体   English   中英

将Jtable保存到我用布尔列创建的文件中

[英]Save a Jtable to a file I created with a boolean column

我正在尝试在退出时保存一个jtable,但是不能,因为我将布尔值作为自己的列之一。 谁能向我解释如何摆脱java.lang.ClassCastException: java.lang.Boolean cannot be cast to java.lang.String吗?

这是我要保存在退出代码。

private void btnBckMouseClicked(java.awt.event.MouseEvent evt) {                                    
         BufferedWriter bfw = null;
        try {
            bfw = new BufferedWriter(new FileWriter(filePath));
            for(int i = 0 ; i < tabTask.getColumnCount() ; i++)
            {
                bfw.write(tabTask.getColumnName(i));
                bfw.write("\t");
            }         for (int i = 0 ; i < tabTask.getRowCount(); i++)
            {
                bfw.newLine();
                for(int j = 0 ; j < tabTask.getColumnCount();j++)
                {
                    bfw.write((String)(tabTask.getValueAt(i,j)));
      bfw.write("\t");
    }
  }         bfw.close();
            fireBackEvent();
        } catch (IOException ex) {               
            Logger.getLogger(SubList.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
            try {
                bfw.close();
            } catch (IOException ex) {
                Logger.getLogger(SubList.class.getName()).log(Level.SEVERE, null, ex);
            } 

        }
    }   

显然行bfw.write((String)(tabTask.getValueAt(i,j))); 是不正确的。 如果您具有布尔列,则不能将其强制转换为字符串。

使用例如bfw.write(“” + tabTask.getValueAt(i,j));

或检查类并根据类强制转换值。 像这样

Object value=tabTask.getValueAt(i,j);
if (value!=null) {
  if (value instanceof String) {
    bfw.write((String)value);
  }
  else if (value instanceof Boolean) {
    bfw.write(Boolean.toString(value));
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM