最近在做将Gephi转成Eclipse?RCP平台下的项目,目前在改造属性表格控件,遇到需要设置表格的列宽有个最小值,经过研究暂时算是解决了,不过感觉还是不完美,但先记录下来,如果有谁有更好的方法,希望能相互讨论一下,代码如下:
?
class="java" name="code">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); try { Thread.sleep(100); } catch (InterruptedException e) { } //设置最小宽度 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); try { Thread.sleep(100); } catch (InterruptedException e) { } //设置最小宽度 column.setWidth(minWidth); } } }); } }
?
?