关于java-swing中,把Component序列化生成二进制model文件,出现序列化异常javax.swing.text.GapContent$StickyPosition问题解决

文章讨论了在使用javaswing开发的桌面程序中,JTextField序列化时遇到的NotSerializableException,特别指出中文输入和特定字体可能导致序列化失败。
摘要由CSDN通过智能技术生成

由于工作中使用的是java swing开发的桌面程序,其中就有把JTextField等JComponent序列化生成二进制model文件的过程,有时会发现,输入数据后能正常序列化,有时就会出现java.io.NotSerializableException:javax.swing.text.GapContent$StickyPosition异常。经过测试发现:

如果是输入法是中文,在输入框中添加了中文或者数字等其他类型的字符串,然后生成二进制文件,就会出现上方异常;

如果是输入法是英文,在输入框中添加了英文或者数字等其他类型的字符串,然后生成二进制文件件,则可以正常生成二进制model文件。

因此,出现异常的可能是:

1,输入框中不支持中文类型的字符串,或者中文类型情况下输入的数字,所以生成二进制文件出现异常;

2,在初始化时,对应的输入框或者其他的JComponent定义了字体,而这种字体不能是中文或者与之相关的,所以才会导致生成二进制文件异常。

以上仅仅是个人工作中实测出来的情况和见解,如果异议,欢迎留言。

  • 11
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值