SWT TableColumn TreeColum 设置最小宽度

本文介绍了一种在Eclipse RCP平台中为表格控件的列设置最小宽度的方法,通过监听表格列的调整事件并在列宽小于设定的最小值时自动将其调整回最小宽度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在做将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);
				}
			}
		});

	}

}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值