扩展SWT带标签的Text控件

参考其他扩展控件的方法实现,其实就是多个基本控件的组合使用。按照这个方法可以扩展出其他控件。

 

扩展控件代码:

package com.strong.extend;

import org.eclipse.swt.SWT;

public class StrongText extends Composite {
  private Text text;
  private Label label;
  private int labelWidthHint = 100;
  private String labelStr = "Label";
  private String textStr = "";

  public StrongText(Composite parent, int style, int intWidthHint) {
    super(parent, style);
    this.labelWidthHint = intWidthHint;
    initComposite();
  }

  public StrongText(Composite parent, int style) {
    super(parent, style);
    initComposite();
  }

  private void initComposite() {
    FillLayout thisLayout = new FillLayout(SWT.NONE);
    setLayout(thisLayout);
    Composite composite = new Composite(this, SWT.NONE);
    GridLayout compositeLayout = new GridLayout(2, false);
    compositeLayout.marginTop = -5;
    compositeLayout.marginLeft = -5;
    compositeLayout.marginRight = -5;
    composite.setLayout(compositeLayout);

    label = new Label(composite, SWT.NONE);
    label.setText(labelStr);
    GridData labelGridData = new GridData();
    labelGridData.verticalAlignment = SWT.CENTER;
    labelGridData.grabExcessVerticalSpace = true;
    labelGridData.horizontalAlignment = SWT.FILL;
    labelGridData.widthHint = labelWidthHint;
    label.setLayoutData(labelGridData);

    text = new Text(composite, SWT.BORDER);
    text.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
    text.setText(textStr);
    this.layout();
  }

  public String getLabelStr() {
    return labelStr;
  }

  public void setLabelStr(String labelStr) {
    this.labelStr = labelStr;
    label.setText(this.labelStr);
  }

  public String getTextStr() {
    return textStr;
  }

  public void setTextStr(String textStr) {
    this.textStr = textStr;
    text.setText(this.textStr);
  }

}

 扩展控件SWT可视化编辑界面


实际应用代码

    StrongText textXianLuGuoLv = new StrongText(groupXianLuLieBiao, SWT.NONE, 60);
    textXianLuGuoLv.setTextStr("");
    textXianLuGuoLv.setBounds(10, 21, 165, 23);
    textXianLuGuoLv.setLabelStr(Messages.MainApplication_XianLuGuoLv);

 

实际应用效果


 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值