alh*_*hcr 6 java swt grid-layout
按钮点击后我需要替换网格单元格的内容.例如:有标签,我需要用文本替换它.是否可以使用GridLayout?我需要使用SWT.
你可以简单地处理Label并放置一个新的Text. GridLayout使用子项的z顺序来确定网格中的位置,因此您需要使用moveAbove()和moveBelow()上的Text以便将其放在正确的位置.然后打电话layout()给父母.例如:
Text text = new Text(label.getParent(), SWT.BORDER);
text.moveAbove(label);
label.dispose();
text.getParent().layout();
Run Code Online (Sandbox Code Playgroud)
这是一个简单的小部件,完全说明了我的意思:
public class ReplaceWidgetComposite
extends Composite
{
private Label label;
private Text text;
private Button button;
public ReplaceWidgetComposite(Composite parent, int style)
{
super(parent, style);
setLayout(new GridLayout(1, false));
label = new Label(this, SWT.NONE);
label.setText("This is a label!");
button = new Button(this, SWT.PUSH);
button.setText("Press me to change");
button.addSelectionListener(new SelectionAdapter()
{
public void widgetSelected(SelectionEvent e)
{
text = new Text(ReplaceWidgetComposite.this, SWT.BORDER);
text.setText("Now it's a text!");
text.moveAbove(label);
label.dispose();
button.dispose();
ReplaceWidgetComposite.this.layout(true);
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4038 次 |
| 最近记录: |