Hello!你好哇,我是灰小猿!
最近在做聊天室相关项目的开发的时候,需要对文本框中的字体进行区别显示,但是由于JTextArea文本框属于纯文本形式的,无法对其中的文本进行不同格式的显示,所以这个时候就需要使用JTextPane文本域进行文本内容的显示了。
其主要原因是:
JTextPane文本域中可以设置html样式
JTextArea文本框不可以设置html样式
这就造成了JTextPane文本域中的内容可以根据需要自行设置属性,从而实现不同文字内容的颜色、字号等属性。
通过以下函数可以直接对JTextPane文本域中的内容进行写入,其中传入的参数分别是:“写入文本框的内容、字体颜色、是否粗体、字号”,JTextPane文本域布局完成后,直接调用该函数就可对文本写入,
函数代码中的
Document doc = infoWindow.getDocument();
中的infoWindow为JTextPane文本域的名称,调用函数时注意修改!
以下为该函数源码:
//设置接收框文本字体属性 public void setInfoWindosFont(String str, Color col,boolean bold,int fontSize) { SimpleAttributeSet attrSet = new SimpleAttributeSet(); StyleConstants.setForeground(attrSet, col);//设置颜色 if (bold) { StyleConstants.setBold(attrSet, bold);//设置粗体 } StyleConstants.setFontSize(attrSet, fontSize);//设置字号 /*********infoWindow为JTextPane文本域的名称*****************/ Document doc = infoWindow.getDocument(); str = "\n" + str; try { doc.insertString(doc.getLength(), str, attrSet); } catch (BadLocationException e) { // TODO Auto-generated catch block //e.printStackTrace(); JOptionPane.showMessageDialog(null, "字体设置错误!", "提示", JOptionPane.ERROR_MESSAGE); } }
显示效果:
编辑
觉得有用记得点赞关注哟!
大灰狼陪你一起进步!
编辑