当前位置: 代码迷 >> Eclipse >> swt 窗体怎么刷新界面的有关问题
  详细解决方案

swt 窗体怎么刷新界面的有关问题

热度:465   发布时间:2016-04-23 13:52:02.0
swt 窗体如何刷新界面的问题。
我通过代码动态的添加了一个Label,代码如下:
Java code
   Label lab= new Label(shell, SWT.NONE);   lab.setText("123");

但是这是的窗口上并没有出现这个Label,如果鼠标拖动窗体改变一下大小,新添加的Label就出现了,所以应该是界面刷新问题。

Java code
  Display.getCurrent().getActiveShell().pack();

上面代码刷新界面的时候,窗体的大小会改变,因为调用pack()方法,窗体会忽略以前的 setSize(),从而使窗体变为自动大小。
有一个笨办法就是在调用 pack()方法后,重新设置 setSize()方法恢复窗体大小,不好的地方是这样做窗体会闪屏。
有没有别的办法来实现刷新窗体呢。



------解决方案--------------------
重新Layout,比如 lab.getParent().layout()
------解决方案--------------------
要么shell.setLayout,设置一种布局;
要么不设布局,就用绝对布局就要用label.setBounds设置位置和大小
------解决方案--------------------
pack()方法一般不得已的情况下才用,如果窗体放不下,可以考虑用ScrolledComposite。


------解决方案--------------------
探讨

要么shell.setLayout,设置一种布局;
要么不设布局,就用绝对布局就要用label.setBounds设置位置和大小
  相关解决方案