您不能使用Jtextarea。
一种解决方案是使用a
JTextPane并为插入的每一行文本设置属性:
import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.text.*;public class TextPaneChat{ private static void createAndShowGUI() { JTextPane textPane = new JTextPane(); Styleddocument doc = textPane.getStyleddocument(); SimpleAttributeSet left = new SimpleAttributeSet(); StyleConstants.setAlignment(left, StyleConstants.ALIGN_LEFT); StyleConstants.setForeground(left, Color.RED); SimpleAttributeSet right = new SimpleAttributeSet(); StyleConstants.setAlignment(right, StyleConstants.ALIGN_RIGHT); StyleConstants.setForeground(right, Color.BLUE); try { doc.insertString(doc.getLength(), "Are you busy tonight?", left ); doc.setParagraphAttributes(doc.getLength(), 1, left, false); doc.insertString(doc.getLength(), "nNo", right ); doc.setParagraphAttributes(doc.getLength(), 1, right, false); doc.insertString(doc.getLength(), "nFeel like going to a movie?", left ); doc.setParagraphAttributes(doc.getLength(), 1, left, false); doc.insertString(doc.getLength(), "nSure", right ); doc.setParagraphAttributes(doc.getLength(), 1, right, false); } catch(Exception e) { System.out.println(e); } Jframe frame = new Jframe("Text Pane Chat"); frame.setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE); frame.add( new JScrollPane( textPane ) ); frame.setLocationByPlatform( true ); frame.setSize(200, 200); frame.setVisible( true ); } public static void main(String[] args) { EventQueue.invokeLater( () -> createAndShowGUI() ); }}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)