惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

酷 壳 – CoolShell
酷 壳 – CoolShell
D
DataBreaches.Net
C
Check Point Blog
雷峰网
雷峰网
小众软件
小众软件
GbyAI
GbyAI
美团技术团队
P
Proofpoint News Feed
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
罗磊的独立博客
大猫的无限游戏
大猫的无限游戏
WordPress大学
WordPress大学
MyScale Blog
MyScale Blog
The Cloudflare Blog
阮一峰的网络日志
阮一峰的网络日志
Apple Machine Learning Research
Apple Machine Learning Research
Y
Y Combinator Blog
Jina AI
Jina AI
爱范儿
爱范儿
Last Week in AI
Last Week in AI
MongoDB | Blog
MongoDB | Blog
I
InfoQ
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 司徒正美

博客园 - Aimd

EPS图片转换 & 共享一个Excel宏,用于画Latex表格 Latex从零到开始使用 Eclipse下配置及使用Tomcat 6.0数据库连接池连接sqlserver2000 强制删除文件夹 SWT应用程序打包成jar过程 解决firefox频繁询问代理服务器用户名和密码问题 SQL server 2005 不能重新安装解决及ADO连接事例代码 SQL server 2005 远程连接问题及解决 家乡回长春路上拍的照片 blog的三种人 右键打不开磁盘又出新花样 用jni实现java使用dll 今天遇到一个geotools(GIS)和Eclipse合作的巨恶问题 实现模型间的多线连接 慎用EMF Ecore文件的名字 数据压缩方法 BIRT插件的使用 RCP的布局得两个细节 RCP导出注意事项
允许SWT Table的Tableitem多行显示
Aimd · 2006-08-04 · via 博客园 - Aimd

在org上看到一段代码,不过它说的不够清除。
1:Table创建好之后添加如下代码:

        // 向table添加listener,使之可以多行显示
        Listener paintListener = new Listener() {
            
public void handleEvent(Event event) {
                
switch(event.type) {        
                    
case SWT.MeasureItem: {
                        TableItem item 
= (TableItem)event.item;
                        String text 
= getText(item, event.index);
                        Point size 
= event.gc.textExtent(text);
                        event.width 
= size.x;
                        event.height 
= Math.max(event.height, size.y);
                        
break;
                    }
                    
case SWT.PaintItem: {
                        TableItem item 
= (TableItem)event.item;
                        String text 
= getText(item, event.index);
                        Point size 
= event.gc.textExtent(text);                    
                        
int offset2 = event.index == 0 ? Math.max(0, (event.height - size.y) / 2) : 0;
                        event.gc.drawText(text, event.x, event.y 
+ offset2, true);
                        
break;
                    }
                    
case SWT.EraseItem: {    
                        event.detail 
&= ~SWT.FOREGROUND;
                        
break;
                    }
                }
            }
            String getText(TableItem item, 
int column) {
                
return item.getText(column);
            }
        };
       table.addListener(SWT.MeasureItem, paintListener);
       table.addListener(SWT.PaintItem, paintListener);
       table.addListener(SWT.EraseItem, paintListener);

2. 换行要自己加个“\n”到字符串中,如

  TableItem item = new TableItem(table, SWT.NONE, table.getItemCount());
  item.setText(
"first line" + "\n" + "second line");

这样就分两行来显示一个table行中的内容了