`
niqingyang
  • 浏览: 44175 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

SWT TableColumn TreeColum 设置最小宽度

阅读更多

最近在做将Gephi转成Eclipse RCP平台下的项目,目前在改造属性表格控件,遇到需要设置表格的列宽有个最小值,经过研究暂时算是解决了,不过感觉还是不完美,但先记录下来,如果有谁有更好的方法,希望能相互讨论一下,代码如下:

 

package com.cntrust.swt.util;

import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.swt.widgets.TreeColumn;

/**
 * 表格工具类
 * 
 * @author 倪庆洋 <niqy@qq.com>
 * 
 * @date Mar 27, 2015 11:18:55 AM
 */
public class TableUtils {

	/**
	 * 为列设置最小宽度
	 * 
	 * @param column
	 * @param minWidth
	 */
	public static void setColumnMinWidth(final TableColumn column, final int minWidth) {

		if (column.getWidth() < minWidth) {
			column.setWidth(minWidth);
		}

		column.addListener(SWT.Resize, new Listener() {
			@Override
			public void handleEvent(Event event) {
				if (column.getWidth() < minWidth) {
					//设置最小宽度
					column.setWidth(minWidth);
					// 模拟鼠标释放事件
					event.type = SWT.MouseUp;
					event.button = 1;
					event.display.post(event);
					//设置最小宽度
					column.setWidth(minWidth);
				}
			}
		});

	}

	/**
	 * 为列设置最小宽度
	 * 
	 * @param column
	 * @param minWidth
	 */
	public static void setColumnMinWidth(final TreeColumn column, final int minWidth) {
		
		if (column.getWidth() < minWidth) {
			column.setWidth(minWidth);
		}
		
		column.addListener(SWT.Resize, new Listener() {
			@Override
			public void handleEvent(Event event) {
				if (column.getWidth() < minWidth) {
					//设置最小宽度
					column.setWidth(minWidth);
					event.type = SWT.MouseUp;
					event.button = 1;
					event.display.post(event);
					//设置最小宽度
					column.setWidth(minWidth);
				}
			}
		});

	}

}

 

 

分享到:
评论

相关推荐

    swt table 实现换行

    根据提供的文件信息,可以看出本文主要讨论的是如何在 SWT (Standard Widget Toolkit) 的 Table 控件中实现文本换行的功能。SWT 是一个用于开发基于 Java 的桌面应用程序的工具包,它提供了丰富的用户界面组件来帮助...

    SWT Table单元格编辑功能

    接着,为了确保编辑器能正确地与单元格对齐,我们需要设置编辑器的水平对齐方式、抓取宽度属性以及最小宽度: ```java editor.horizontalAlignment = SWT.LEFT; editor.grabHorizontal = true; editor.minimumWidth...

    SWT表格管理类(包括表头排序,隔行颜色,表格宽度自适应)

    SWT表格管理类,包括表头排序事件,table宽度自适应事件,隔行颜色事件

    SWT Table分页的工具类

    在SWT中,Table控件相当于其他GUI库中的数据表格,可以用来展示多行多列的数据。在处理大量数据时,为了提高性能和用户体验,通常会采用分页的方式来显示数据。本文将深入探讨如何使用SWT Table实现分页功能,并基于...

    JAVA SWT Table SWTChart Jdbc 数据 表格 散点图 界面

    在SWT中,我们可以创建一个Shell对象作为应用程序的主窗口,然后在其中添加Table和Chart控件。Table控件可以用来显示数据库中的表格数据,支持排序、筛选等功能;而Chart控件则可以渲染从数据库获取的散点数据。 6...

    swt table 自己造个轮子

    - 表头(TableColumn)用于定义列,可以调整宽度、添加排序功能等。 3. 自定义表格控件: - 开发者可能会扩展SWT.Table类,添加自定义的功能,如自定义的渲染器(CellRenderer)、编辑器(CellEditor)等。 - ...

    swt类库Table

    1. **工具提示(Tooltip)**:在SWT中,可以为`Table`的每一项设置单独的工具提示。通过调用`TableItem`的`setToolTipText(String text)`方法,可以为选定的行或单元格设置自定义的提示文本。当鼠标停留在该行或...

    SWT tableEditor删除后刷新

    TableEditor通常会绑定一个控件(如Text、Button等)到一个特定的TableItem和Column。当用户开始编辑时,这个控件会显示在对应的单元格内。在完成编辑后,通常我们会调用TableEditor的`dispose()`方法来移除编辑器,...

    swt table扩展

    然后,在创建`TableColumn`时,将其`setEditor`方法设置为我们自定义的`CellEditor`实例,这样就可以在单元格中启用编辑功能。 对于复杂的排序功能,SWT本身提供了基本的单击列头进行排序的能力,但如果我们需要...

    SWT(笔画宽度变化)代码

    ### SWT(笔画宽度变化)代码解析 #### 一、概览 SWT(Stroke Width Transform,笔画宽度变换)是一种用于分析图像中线条或边界的算法,它能够量化图像中线条的宽度,并有助于后续的特征提取与识别任务。本文将...

    SWT表格管理类

    SWT的`TableColumn`类提供了`pack()`方法,该方法会调整列宽以适应列中最长的文本。在初始化表格或数据更新后,可以遍历所有列调用`pack()`方法。此外,还可以设置列宽的最小和最大值,以保持一定的布局规则。 在`...

    java swt table

    在深入探讨“Java SWT Table”这一主题之前,我们先来明确一下SWT(Standard Widget Toolkit)是什么以及它在Java开发中的角色。SWT是Eclipse平台的一部分,它提供了一组用于构建图形用户界面(GUI)的类库。与AWT和...

    Eclipse SWT/Jface环境设置 DOC文件

    在"Eclipse SWT Jface环境设置.doc"文档中,可能会涵盖如何在Eclipse环境中配置SWT和JFace的开发环境,包括安装必要的插件、创建新项目、导入库、设置构建路径以及编写示例代码等步骤。这个文档对于初学者或准备使用...

    使Excel嵌入到SWT窗口中

    使Excel嵌入到SWT窗口中 知识点一:Eclipse版本和jdk版本的选择 在本例中,我们使用的是Eclipse 3.3.1版本和jdk 5.0版本。Eclipse是一个开源的集成开发环境(IDE),它支持多种编程语言,包括Java、C++、Python等...

    SWT增删改查

    你可以通过`TableItem`来创建和修改表格行,`TableColumn`用于定义列。同时,`Table`控件支持选择模式,如单选或多选,以便用户选择要操作的数据行。 7. 数据绑定: 为了简化UI与数据源之间的交互,可以使用数据绑定...

    Advanced SWT

    TableColumn name = new TableColumn(table1, SWT.LEFT); ``` 这里`SWT.LEFT`表示文本左对齐,另外还有`SWT.RIGHT`右对齐和`SWT.CENTER`居中对齐两种样式。此外,还需要设置列的宽度和名称: ```java name.setText...

    swt-64.rar_64位swt_64的SWT_SWT64_swt.jar 64位_swt64位

    标题“swt-64.rar_64位swt_64的SWT_SWT64_swt.jar 64位_swt64位”表明这个压缩包包含了适用于64位Windows操作系统的SWT库。描述中提到的“64位windows操作系统使用的SWT库”进一步确认了这一点。 SWT的设计目标是...

    在SWING、SWT中嵌入浏览器

    在Java编程环境中,SWING和SWT(Standard Widget Toolkit)是两种常见的图形用户界面(GUI)库,用于创建桌面应用程序。然而,有时我们可能需要在这些应用中集成Web浏览功能,比如显示网页或者运行Web应用。这篇博客...

    SWT使用例子

    SWT(Standard Widget Toolkit)是Java中用于创建图形用户界面(GUI)的一种开源库,它是Eclipse项目的基础组件。SWT的设计目标是提供一个高效、本地化的GUI工具包,能够充分利用操作系统提供的功能,使得Java应用...

    Swt/Jface tableViewer入门教程一(显示tableViewer)

    你可以通过调用`tableViewer.getTable().addColumn`来添加列,并设置其标题和宽度。 5. **事件监听**:`tableViewer`提供了丰富的事件监听机制,如`SelectionChangedListener`用于监听选中项变化,`...

Global site tag (gtag.js) - Google Analytics