我正在尝试做一些我认为简单的事情,但是...我基本上是在SWT表中添加一个调整大小的侦听器,例如
getTable().addListener(SWT.Resize, new Listener(){
int initialSize = getTable().getClientArea().width;
@Override
public void handleEvent(Event arg0) {
int size = getTable().getClientArea().width;
System.out.println(""+initialSize+"-"+size+"="+(initialSize-size));
}
});
因此,如果我有一个1000初始大小的表并且最大化它,例如
1000-1074 = -74
或者如果不是最大化我用鼠标调整大小(在这种情况下缩小它)
1000-850 = 150
这在Linux上运行良好,但是在Windows上,侦听器在整个移动过程中被调用,而不仅仅是在调整大小结束时,就像Linux那样,只提供一个调整大小的内容,如
986-985 = 1
986-985 = 1
985-969 = 16
985-969 = 16
969-965 = 4
969-965 = 4
965-950 = 15
965-950 = 15
950-940 = 10
950-940 = 10
940-937 = 3
940-937 = 3
937-924 = 13
937-924 = 13
924-921 = 3
924-921 = 3
921-920 = 1
921-920 = 1
920-905 = 15
920-905 = 15
905-903 = 2
905-903 = 2
903-902 = 1
903-902 = 1
902-901 = 1
902-901 = 1
这里的目标是通过一些特定的计算来调整表中的列,并且我需要的是最终大小,就像在Linux中一样。
我知道这种行为取决于操作系统,但是如何在Windows上模拟它在Linux中的功能呢?
谢谢。