`
vtyi
  • 浏览: 82377 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

jtable的一些处理

阅读更多

关于jtable显示汉字时乱码:table.setFont(new Font("SimSun", 0, 14));//或者宋体

问题解决

 

 

/**  
    *   <p>Title:   JTable自动换行、自动调整宽度</p>  
    *   <p>Description:   让JTable单元格可以自动换行、自动调整宽度以适合单元格内容</p>  
    *   <p>Copyright:   Beyond   DayBreak   Office   Copyright   (c)   2004</p>  
    *   <p>Company:   www.EchoChina.net</p>  
    *   @author   YuLimin  
    *   @version   1.0  
    */  
   
  import   java.awt.Dimension;  
  import   java.awt.Toolkit;  
  import   javax.swing.UIManager;  
   
  public   class   TableDemo  
  {  
          //构造函数  
          public   TableDemo()  
          {  
                  //表格处理类  
                  TableDemoFrame   frame   =   new   TableDemoFrame();  
                  //测试数据内容:\n表示要强制进行换行!  
                  String   strContent   =   "中华人民共和国\n1234567890中华人民China,共和国CN中华人民\n共\n和\n国\n中华人民共和国福建省莆田市荔城区黄石镇常溪居委会常溪50号,俞黎敏!";  
                  //表头:列的显示名称  
                  String[]   vColumnNames   =  
                          {"姓名","生日","部门","备注"};  
                  //测试显示行的数据内容  
                  String[][]   vRowData   =  
                          {  
                          {"YuLimin","1976.02.02","Develop",strContent}  
                          ,  
                          {"Echo","1976.02.02","Sale","中华人民共和国是一个伟大的国家!"}  
                          ,  
                          {"俞姿妍","2003.10.12","Baby","我的小可爱!"}  
                          ,  
                          {"俞黎敏","1976.02.02","Software","第一行\n第二行\n\n第四行\n\n\n儿童团团长\n经常率团打篮球\n哈哈哈"}  
                          ,  
                          {"JDK   Version","1995.01.01","Software","JDK   Version\n1.2.2"}  
                  };  
                  try  
                  {  
                          //显示数据于表格中  
                          frame.showDataToTable(vColumnNames,vRowData);  
                          //显示表格出来  
                          frame.showTableDemoFrame();  
                  }  
                  catch(Exception   e)  
                  {  
                          e.printStackTrace();  
                  }  
                  //让窗口居中  
                  Dimension   screenSize   =   Toolkit.getDefaultToolkit().getScreenSize();  
                  Dimension   frameSize   =   frame.getSize();  
                  if(frameSize.height   >   screenSize.height)  
                  {  
                          frameSize.height   =   screenSize.height;  
                  }  
                  if(frameSize.width   >   screenSize.width)  
                  {  
                          frameSize.width   =   screenSize.width;  
                  }  
                  frame.setLocation((screenSize.width   -   frameSize.width)   /   2,(screenSize.height   -   frameSize.height)   /   2);  
                  frame.setVisible(true);  
          }  
   
          //主函数:测试运行之!  
          public   static   void   main(String[]   args)  
          {  
                  try  
                  {  
                          UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());  
                  }  
                  catch(Exception   e)  
                  {  
                          e.printStackTrace();  
                  }  
                  new   TableDemo();  
          }  
  }

 

/**  
    *   <p>Title:   汉字分行处理</p>  
    *   <p>Description:   汉字分行处理</p>  
    *   <p>Copyright:   Beyond   DayBreak   Office   Copyright   (c)   2004</p>  
    *   <p>Company:   www.EchoChina.net</p>  
    *   @author   YuLimin  
    *   @version   1.0  
    */  
   
  import   java.util.Vector;  
   
  public   class   Sinogram  
  {  
          //字符集声明  
          private   String   CharacterSet   =   "8859_1";  
   
          /**  
            *   setCharacterSet  
            *  
            *   @param   CharacterSet   String  
            */  
          public   void   setCharacterSet(String   CharacterSet)  
          {  
                  this.CharacterSet   =   CharacterSet;  
          }  
   
          /**  
            *   getCharacterSet  
            *  
            *   @return   String  
            */  
          public   String   getCharacterSet()  
          {  
                  return   CharacterSet;  
          }  
   
          /**  
            *   getSinogram  
            *  
            *   @param   str   String  
            *   @param   iLen   int  
            *   @return   Vector  
            */  
          public   Vector   getSinogram(String   str,int   iLen)   throws   Exception  
          {  
                  String   strBytes   =   new   String(str.getBytes(),CharacterSet);  
                  int   len   =   new   String(str.getBytes(),CharacterSet).length();  
                  //System.out.println(str   +   "==>>总长度为:"   +   len);  
                  char   c;  
                  String   strTemp   =   "";  
                  Vector   v   =   new   Vector();  
                  StringBuffer   strbuf   =   new   StringBuffer();  
                  int   j   =   0;  
                  for(int   i   =   0;i   <   len;i++)  
                  {  
                          strTemp   =   strBytes.substring(i,i   +   1);  
                          c   =   strTemp.charAt(0);  
                          if(c   >   '\u0080')   //即:>0x80的为汉字!  
                          {  
                                  strTemp   =   strBytes.substring(i,i   +   2);  
                                  i++;  
                                  strbuf.append(new   String(strTemp.getBytes(CharacterSet)));  
                                  //System.out.print(new   String(strTemp.getBytes(CharacterSet)));  
                                  j   +=   2;  
                          }  
                          else  
                          {  
                                  strbuf.append(c);  
                                  //System.out.print(c);  
                                  j++;  
                          }  
                          if(j   >=   iLen)  
                          {  
                                  j   =   0;  
                                  v.addElement(strbuf.toString());  
                                  strbuf   =   new   StringBuffer();  
                          }  
                  }  
                  v.addElement(strbuf.toString());  
                  return   v;  
          }  
   
          /**  
            *   用getBytes(encoding):返回字符串的一个byte数组  
            *   当b[0]为   63时,应该是转码错误  
            *   A、不乱码的汉字字符串:  
            *   1、encoding用GB2312时,每byte是负数;  
            *   2、encoding用ISO8859_1时,b[i]全是63。  
            *   B、乱码的汉字字符串:  
            *   1、encoding用ISO8859_1时,每byte也是负数;  
            *   2、encoding用GB2312时,b[i]大部分是63。  
            *   C、英文字符串  
            *   1、encoding用ISO8859_1和GB2312时,每byte都大于0;  
            *   <p/>  
            *   总结:给定一个字符串,用getBytes("iso8859_1")  
            *   1、如果b[i]有63,不用转码;   A-2  
            *   2、如果b[i]全大于0,那么为英文字符串,不用转码;   B-1  
            *   3、如果b[i]有小于0的,那么已经乱码,要转码。   C-1  
            */  
          private   static   String   toGb2312(String   str)  
          {  
                  if(str   ==   null)  
                  {  
                          return   null;  
                  }  
                  String   retStr   =   str;  
                  byte   b[];  
                  try  
                  {  
                          b   =   str.getBytes("ISO8859_1");  
   
                          for(int   i   =   0;i   <   b.length;i++)  
                          {  
                                  byte   b1   =   b[i];  
                                  if(b1   ==   63)  
                                  {  
                                          break;   //1  
                                  }  
                                  else  
                                  {  
                                          if(b1   >   0)  
                                          {  
                                                  continue;   //2  
                                          }  
                                          else  
                                          {  
                                                  if(b1   <   0)  
                                                  {  
                                                          //不可能为0,0为字符串结束符  
                                                          retStr   =   new   String(b,"GB2312");  
                                                          break;  
                                                  }  
                                          }  
                                  }  
                          }  
                  }  
                  catch(Exception   e)  
                  {  
                          e.printStackTrace();  
                  }  
                  return   retStr;  
          }  
   
          //主函数:测试运行之!  
          public   static   void   main(String[]   args)   throws   Exception  
          {  
                  Sinogram   sinogram   =   new   Sinogram();  
                  String   str   =   "iAM俞黎敏in,赫赫,351100福建省莆田市荔城区黄石镇常溪居委会常溪50号";  
   
                  //测试显示每行2个字!  
                  Vector   v   =   sinogram.getSinogram(str,2);  
                  for(int   j   =   0;j   <   v.size();j++)  
                  {  
                          System.out.println(v.elementAt(j));  
                  }  
          }  
  }  

分享到:
评论

相关推荐

    JTable示例源码(Swing demo)

    JTable使用TableModel实现数据绑定的示例,以及常用JTable时间处理中,如何获取当前选中行,选中行其他数据等。

    JTable的setSelectionMode设置为SINGLE_SELECTION后,Ctrl+A按下,焦点自动迁移到最后一行的处理

    主要解决: 把jtable设置为只能选择一行,但是按下Ctrl+A以后,table会自动把选择迁移到最后一行. 如何不让焦点自动迁移?给了个人的一个简单的实现。

    JAVA 面向对象程序设计第11章 Swing高级应用.pptx

    11.1 JTable表格组件; 11.1.1 JTable表格组件 ; 11.1.1 JTable表格组件 ;11.1.2 学生实践练习;11.1.2 学生实践练习;11.2 菜单组件; 11.2.1 菜单组件 ; 11.2.1 菜单组件 ; 11.2.1 菜单组件 ; 11.2.1 菜单组件 ;...

    自己重写java类【可处理数据结果集并能列排序的模板】

    用法: myTableModel=new ResultSetTableModel(m_Rs); sorterTableModel = new SortTableModel... sorterTableModel.addMouseListenerToHeaderInTable(jTable1); jTable1.setModel(sorterTableModel);

    java_swing表格分页

    在实际开发中,我们经常需要处理大量的数据,然而,如果我们将所有数据一次性加载到表格中,将会对应用程序的性能产生巨大影响。这时,分页机制将会发挥重要作用。通过分页,我们可以将大量数据拆分成多个小的数据块...

    Movies:简单的电影数据库应用程序。 使用 JTable GUI 组件显示来自 Derby 数据库的数据

    电影简单的电影数据库应用程序。 使用 JTable GUI 组件显示来自 Derby 数据库的数据 Custom TableModel 处理在 GUI 中显示来自表的数据。

    图书进存销系统(练手项目九)

    * 在界面中主要使用JTable的处理,表现层、业务层与数据访问层的分层结构, 大大减低了各层之间的代码耦合。 * 在表现层中简单的使用了模板方法这种设计模式,将各个界面中的共同点提取到父类进行处理。 ...

    高校学生简历信息管理系统

    Java中jtable的操作,jxl的运用,,在jtable上直接修改添加,jtree节点的事件处理。

    万年历java设计源码

    例如,`private JTable table = new JTable(dtm);`这一行代码就创建了一个表格组件。 知识点3: 事件处理 在该设计源码中,我们可以看到事件处理的知识点。例如,`implements ActionListener, MouseListener`这一行...

    超市管理系统的Java程序

    SupermarketManagementSystem类是一个JFrame窗口,包含了添加产品、编辑产品和删除产品的按钮,以及一个JTable表格用于显示产品信息。程序通过initializeComponents方法初始化组件,通过initializeLayout方法设置...

    JDK+6.0+ZH+API.chm.zip

    JDK6的新特性之六_插入式注解处理API JDK6的新特性之九_CommonAnnotations JDK6的新特性之十_Web服务元数据 JDK6的新特性之十一_更简单强大的JAX-WS JDK6的新特性之十三_JTable的排序和过滤 JDK6的新特性之...

    JAVA_API1.6文档(中文)

    javax.swing.table 提供用于处理 javax.swing.JTable 的类和接口。 javax.swing.text 提供类 HTMLEditorKit 和创建 HTML 文本编辑器的支持类。 javax.swing.text.html 提供类 HTMLEditorKit 和创建 HTML 文本编辑...

    java swing Demo完整版

    这里是我最近学习swing编程中用到的一些demo JTable CURD 事件绑定 进度条 线程处理等等demo,总之作为新手的你,看这个demo你可以学到很多。这里还采用了2-3中布局方式实现布局,由于项目其他保密性,这里只是一个...

    SecresCSV:以表格格式一次打开查看,编辑,打印和保存(测试版)多个CSV文件的GUI。 该应用程序可以处理比Microsoft Excel长的行。 有助于理解数据以用于将来的数据分析

    该应用程序可以处理比Microsoft Excel 1更长的行。 该应用程序的目的是在数据分析之前查看大型CSV文件以了解数据。 该应用程序利用工作线程将CSV数据添加到表中。 Model类的每个实例都将数据添加到DefaultTableModel...

    《Java编程技巧典型案例解析》随书光盘

    实例7 Java servlet中对模板文件的处理 实例10 在Java应用程序中播放Midi音乐 实例13 基于Java语言的多线程同步机制 实例14 Java程序中的多线程实现 实例15 利用Java的多线程技术实现并行多任务的管理 ...

    java api最新7.0

    javax.swing.table 提供用于处理 javax.swing.JTable 的类和接口。 javax.swing.text 提供类 HTMLEditorKit 和创建 HTML 文本编辑器的支持类。 javax.swing.text.html 提供类 HTMLEditorKit 和创建 HTML 文本编辑器...

    [Java参考文档].JDK_API 1.6

    javax.swing.table 提供用于处理 javax.swing.JTable 的类和接口。 javax.swing.text 提供类 HTMLEditorKit 和创建 HTML 文本编辑器的支持类。 javax.swing.text.html 提供类 HTMLEditorKit 和创建 HTML 文本编辑器...

    Java 1.6 API 中文 New

    javax.swing.table 提供用于处理 javax.swing.JTable 的类和接口。 javax.swing.text 提供类 HTMLEditorKit 和创建 HTML 文本编辑器的支持类。 javax.swing.text.html 提供类 HTMLEditorKit 和创建 HTML 文本编辑器...

    JDK_1_6 API

    javax.swing.table 提供用于处理 javax.swing.JTable 的类和接口。 javax.swing.text 提供类 HTMLEditorKit 和创建 HTML 文本编辑器的支持类。 javax.swing.text.html 提供类 HTMLEditorKit 和创建 HTML 文本编辑器...

Global site tag (gtag.js) - Google Analytics