java swt gridlayout_java – 如何在SWT GridLayout中替换网格单元格的内容?

您可以简单地处理Label并在其位置放置一个新文本. GridLayout使用子节点的z顺序来确定网格中的位置,因此您需要在Text上使用moveAbove()和moveBelow()才能将其放在正确的位置.然后在父级上调用layout().例如:

Text text = new Text(label.getParent(), SWT.BORDER);

text.moveAbove(label);

label.dispose();

text.getParent().layout();

这是一个简单的小部件,完全说明了我的意思:

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);

}

});

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值