`
vtyi
  • 浏览: 83488 次
  • 性别: 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 练习例子exa

    为了使`JTable`更具交互性,开发者还可以使用`MouseListener`和`KeyBindings`来处理用户的鼠标点击和键盘输入事件。`ActionListener`则可以用来处理表格中的按钮或菜单项的点击事件。 总的来说,这个"JTable 练习...

    支持ResultSet的JTable

    `vTable.java`可能包含自定义的`TableModel`实现,而`Frame1.java`则可能负责创建`JFrame`窗口,并在其中添加`JTable`,以及处理与数据库的交互。 具体到`ResultSet`的使用,我们需要关注几个关键的方法: - `...

    JTable自动换行

    在处理`JTable`时,我们有时需要使其单元格内容支持自动换行,以便更好地显示长文本。标题“JTable自动换行”正是指向这个功能,即如何在`JTable`的单元格内实现文本的自动换行。 默认情况下,`JTable`的单元格使用...

    jtable详解

    以下是对`JTable`的深入解析,包括其构造、属性、事件处理以及如何在实际项目中应用。 #### 类层次结构 `JTable`继承自`JComponent`,其类层次结构如下: ``` java.lang.Object -- java.awt.Component -- java....

    Swing之JTable的详细介绍

    JTable的一些关键方法包括: - `getTableHeader()`: 获取表格的列头组件。 - `setPreferredScrollableViewportSize(Dimension size)`: 设置表格在滚动视口中的理想大小。 - `addMouseListener(MouseListener ...

    Excel内容复制到JTable中

    当我们需要从Excel文件中读取数据并展示在JTable上时,就需要进行一系列的处理步骤。以下是一些关于如何实现这个过程的关键知识点: 1. **Excel文件处理**: - **Apache POI库**:在Java中,我们通常使用Apache ...

    不错的jquery插件jtable

    开发者只需要定义控制器方法来处理数据请求,jtable 将自动处理前端展示和用户交互。 - **数据源**:使用 MVC 控制器返回 JSON 数据,jtable 负责解析并渲染到表格中。 - **动作方法**:定义如 `LoadTable`, `...

    JAVA JTREE JTABLE实例代码

    通过jtble和tree这两个文件名,我们可以推测压缩包内可能包含了一些关于JTree和JTable的具体实现示例代码。这些代码可能涵盖了更复杂的功能,比如自定义渲染器、拖放操作、数据绑定等,学习这些代码可以帮助开发者更...

    JTable的介绍.doc

    `JTable`能够处理表格数据的显示、编辑以及用户交互。 `JTable`的主要构造函数有以下几个: 1. `JTable()`: 创建一个使用系统默认`Model`的新`JTable`。 2. `JTable(int numRows, int numColumns)`: 创建一个指定...

    JAVA中JTable的使用方法

    `JTable`的核心在于`TableModel`,它定义了数据模型,负责处理表格的数据和结构。 2. **创建`JTable`** 创建`JTable`需要提供一个`TableModel`。最基本的`TableModel`是`DefaultTableModel`,它可以动态地添加、...

    mvc+Jquery-jTable

    jTable通过JSON数据与服务器进行交互,通常结合ASP.NET MVC的Controller来处理这些请求。在MVC应用中,你需要创建一个Controller,定义相关的Action,这些Action将返回jTable所需的JSON数据。 **2. 创建 jTable ...

    JTable(还分页面板示例)

    `AbstractTableModel`是`TableModel`的一个抽象实现,为开发者提供了一些基本的方法实现,如获取行数、列数以及单元格数据,简化了模型的创建过程。 `AbstractTableModel`需要重写以下几个关键方法: 1. `...

    JTable表头排序的两种方法

    3. **设置RowSorter到JTable**:将`RowSorter`设置到`JTable`上,`JTable`会自动处理排序逻辑。 ```java JTable table = new JTable(new DefaultTableModel()); table.setAutoCreateRowSorter(true); ...

    Jtable 中放入多个按钮

    在Java Swing库中,`JTable`是一个非常重要的组件,用于展示二维数据表格。当我们需要在`JTable`中实现更复杂的交互,比如在一个单元格内放置多个按钮时,这通常涉及到自定义`TableCellRenderer`和`TableCellEditor`...

    Java JTree+JTable应用

    在Java Swing库中,`JTree`和`...在实际应用中,你可能还需要考虑其他因素,例如错误处理、用户交互设计、性能优化等。通过这个示例,开发者可以学习到如何有效地组合和使用Swing组件,以创建功能丰富的图形用户界面。

    JTable实现行间拖拽的最简单方法

    在Java Swing应用中,`JTable`是一...在实际开发中,你可能还需要处理一些边缘情况,比如拖动到表头或表的外部,以及优化视觉反馈,例如在拖动时高亮显示目标行。但总的来说,这个方法提供了一个快速且有效的解决方案。

    复杂JTable-跨列表头

    在Java Swing库中,JTable是一个非常重要的组件,用于显示和操作二维数据集。这个组件在用户界面设计中广泛使用,因为它提供了丰富的交互性,包括排序、选择和编辑表格数据。"复杂JTable-跨列表头"是一个特殊实现,...

    JTable增删改查

    `JTable`可以由`TableModel`驱动,该模型负责处理数据的逻辑,包括获取和设置单元格值,以及监听数据变化。 **2. JDBC简介** `JDBC`是Java语言访问数据库的标准接口,它允许Java程序与各种数据库进行通信。通过`...

    JTable 操作单元格 行 列

    在Java Swing库中,`JTable`是一个非常重要的组件,用于在GUI应用程序中展示二维数据。它是基于模型-视图-控制器(MVC)架构设计的,使得数据操作变得灵活且易于管理。本篇文章将深入探讨`JTable`如何操作单元格、行...

    Java Swing高级空件JTable的用法

    这些事件可以通过JTable的API来捕获和处理。 6. 实践项目:Java连连看 Java连连看是一个基于JTable组件的游戏项目。该项目需要实现一个JTable组件,展示游戏的数据对象,并添加游戏的逻辑和事件响应。该项目可以...

Global site tag (gtag.js) - Google Analytics