CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2SE / 基础类

JTextPane怎么不能自动换行?

楼主lifan5748(易水寒)2005-05-18 19:56:54 在 Java / J2SE / 基础类 提问

我在做一个聊天室的程序,为了显示不同的颜色,我把JTextPane的文本设成text/html格式,结果发现不能自动换行了,文本过长后就会出现一个水平滚动条,我不想要这种效果,只想让他自动换行,应该怎么做? 问题点数:30、回复次数:3Top

1 楼sunjie1981()回复于 2005-05-18 20:11:49 得分 5

setLineWrap(boolean   t);看看有没有这个方法可以调用,如果有,设置真就可以实现自动换行Top

2 楼mq612(五斗米)回复于 2005-05-18 21:39:48 得分 20

JTextPane没有setLineWrap(boolean   t);方法,StyledDocument控制着JTextPane中的显示,自动换行,当你把JTextPane设置成text/html格式,html语法将控制它的显示,这时换行将通过<br>来实现,想要自动换行就需要用到表格,一个设置好宽度的表格可以使其中的文字自动折行,这完全和网页上的做法相同。  
  如果确定采用text/html格式,你可以使用JTextPane的父类JEditorPane,建议服务器端采取推技术。  
  用JTextPane显示不同色彩的文字,又想自动折行,请参照下面的代码:  
   
  import   javax.swing.*;  
  import   java.awt.*;  
  import   java.awt.event.*;  
  import   javax.swing.text.*;  
  import   java.io.*;  
   
  public   class   Test   {  
      JFrame   frame;  
      JTextPane   textPane;  
      //File   file;  
      //Icon   image;  
   
      public   Test(){  
          frame   =   new   JFrame("JTextPane");  
          textPane   =   new   JTextPane();  
          //file   =   new   File("./classes/test/icon.gif");  
          //image   =   new   ImageIcon(file.getAbsoluteFile().toString());  
      }  
   
      public   void   insert(String   str,   AttributeSet   attrSet)   {  
          Document   doc   =   textPane.getDocument();  
          str   ="\n"   +   str   ;  
          try   {  
              doc.insertString(doc.getLength(),   str,   attrSet);  
          }  
          catch   (BadLocationException   e)   {  
              System.out.println("BadLocationException:   "   +   e);  
          }  
      }  
   
      public   void   setDocs(String   str,Color   col,boolean   bold,int   fontSize)   {  
          SimpleAttributeSet   attrSet   =   new   SimpleAttributeSet();  
          StyleConstants.setForeground(attrSet,   col);  
          //颜色  
          if(bold==true){  
              StyleConstants.setBold(attrSet,   true);  
          }//字体类型  
          StyleConstants.setFontSize(attrSet,   fontSize);  
          //字体大小  
          insert(str,   attrSet);  
      }  
   
      public   void   gui()   {  
          //textPane.insertIcon(image);   //插入图片  
          setDocs("第一行的文字文字文字文字文字文字文字文字文字文字",Color.red,false,20);   //折行测试  
          setDocs("第二行的文字",Color.BLACK,true,25);  
          setDocs("第三行的文字",Color.BLUE,false,20);  
          frame.getContentPane().add(textPane,   BorderLayout.CENTER);  
          frame.addWindowListener(new   WindowAdapter()   {  
              public   void   windowClosing(WindowEvent   e)   {  
                  System.exit(0);  
              }});  
          frame.setSize(200,300);  
          frame.setVisible(true);  
      }  
      public   static   void   main(String[]   args)   {  
          Test   test   =   new   Test();  
          test.gui();  
      }  
  }Top

3 楼viewtifuljoe(小白)回复于 2005-05-18 22:49:50 得分 5

正好学习,留个名Top

相关问题

  • richEdit不能自动换行?
  • JTextPane怎么实现文本 不 自动换行?
  • 能不能让toolbar自动换行?
  • 能不能使Label自动换行或者TextBox能自动增加高度?
  • 不能自动执行的WM-TIMER处理函数?
  • 使用QuickReport时字段不能自动换行的问题?
  • edit box 是不是不能自动换行?
  • 能不能设置编辑控件的自动换行?
  • CheckBoxList能不能设成一行自动显示5个项?
  • div中不能自动换行的问题

关键词

  • html
  • jtextpane
  • attrset
  • 换行
  • textpane
  • 显示
  • 设置
  • doc
  • boolean
  • html格式

得分解答快速导航

  • 帖主:lifan5748
  • sunjie1981
  • mq612
  • viewtifuljoe

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo