javaswing jtextpane 英文中文自动换行

在开发一个类似QQ聊天的应用时,作者遇到了JTextPane组件英文和数字不自动换行的问题。当输入全英文时不会换行,而中文则会。为了解决此问题,作者尝试了网上的解决方案,包括修改换行设置,但这些方法带来了新的问题,如换行符不生效和获取的文本是HTML代码。最终,作者通过一段特定的代码解决了这个问题,该代码来源于http://www.iteye.com/topic/1138181。
摘要由CSDN通过智能技术生成

最近一段时间在做一个类似QQ聊天的工具。但是在其中遇到一个问题。

在做气泡聊天的时候,原本已经用Jtextarea已经实现。后来因为使用到emoji表情,需要将组件改为JtextPane来

实现插入图片,改组件后出现了这样的问题

 

1:使用jtextpane的时候当输入的全部都是英文和数字的时候是不会自动换行。只有中文的时候才会

 

当出现这样的问题后上网搜索到的解决方案是:

textField.setEditorKit(new HTMLEditorKit() {
			private static final long serialVersionUID = 3632670469611941371L;

			@Override
			public ViewFactory getViewFactory() {

				return new HTMLFactory() {
					public View create(Element e) {
						View v = super.create(e);
						if (v instanceof InlineView) {
							return new InlineView(e) {
								public int getBreakWeight(int axis, float pos, float len) {
									return GoodBreakWeight;
								}

								public View breakView(int axis, int p0, float pos, float len) {
									if (axis == View.X_AXIS) {
										checkPainter();
			
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值