我有一个标签,我最初放置一个静态文本。在我的应用程序中,我将使用setText方法覆盖此标签,文本的大小可能会有所不同。如何重新调整大小的大小标签而不是在开头的
中放置一个恒定的大小Label fontDisplay;
fontDisplay = new Label(Composite, SWT.NONE);
GridData gridData = new GridData();
gridData.widthHint = 12;
fontDisplay.setLayoutData(gridData);
....
fontDisplay(someText);//size of some text is greater than 12,how to re -size the label here?
答案 0 :(得分:1)
您可以在Label
:
Control#pack()
private static final String TEXT = "abcdefghijklmnopqrstuvwxyz";
public static void main(String[] args)
{
Display display = new Display();
Shell shell = new Shell();
shell.setText("StackOverflow");
shell.setLayout(new GridLayout(2, false));
Button button = new Button(shell, SWT.PUSH);
button.setText("Randomize");
final Label label = new Label(shell, SWT.NONE);
label.setText("abc");
button.addListener(SWT.Selection, new Listener()
{
private Random random = new Random();
@Override
public void handleEvent(Event arg0)
{
label.setText(TEXT.substring(0, random.nextInt(TEXT.length())));
label.getParent().pack();
}
});
shell.pack();
shell.open();
while (!shell.isDisposed())
{
if (!display.readAndDispatch())
{
display.sleep();
}
}
display.dispose();
}
答案 1 :(得分:0)
我找到了answert的解决方案。我们只需要调用小部件的父级布局。它可以解决问题。
Composite.layout(true);