TC的handler类调用swt窗口

这篇博客介绍了如何在Java中通过`SampleHandler`类调用SWT窗口。`execute`方法展示了两种创建并显示窗口的方式:一是通过`MyDisplay`创建应用窗口,二是利用`Shell`和`Dialog2`。同时,文章还展示了如何为按钮添加鼠标监听事件,监听`mouseUp`事件并在事件中进行TC组件操作,如创建文件夹。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

public class SampleHandler extends AbstractHandler {
public Object execute(ExecutionEvent event) throws ExecutionException {
//方法一:新建一个application window的display类,在该类实现对话框功能,直接调用open()
MyDisplay display = new MyDisplay();
display.start();
//方法二:创建一个shell,把实现了功能的对话框dialog加入shell
Shell shell = new Shell();
Dialog2 dialog = new Dialog2(shell, SWT.NONE);
dialog.open();
return null;
}
}
//给按钮添加一个鼠标监听事件,有两种方式实现:

方法一://      button.addListener(SWT.MouseUp, new MouseListener(text));
//button.addListener(eventType, listener);
//定义一个监听类,然后把自定义的监听类对象传给button的addListener(),enventType定义了button发生listener事件的条件。

class MouseListener implements Listener{

    private Text text;

    public MouseListener(Text text)
    {
        this.text = text;
    }

    public void handleEvent(Event arg0) {
        if(text.getText()==null)
        {
            MessageBox.post("please input folder-name", "提示:", MessageBox.ERROR);
        }
        else
        {
            TCSession session = (TCSession) AIFUtility.getDefaultSession();
            TCComponentFolderType foldertype;
            try {
                InterfaceAIFComponent target = AIFUtility.getTargetComponent();
                foldertype = (TCComponentFolderType) session.getTypeComponent("Folder");
                TCComponentFolder folder = foldertype.create(text.getText(), "create a folder", "Folder");
                if(target instanceof TCComponentFolder){
                    ((TCComponentFolder) target).add("contents", folder);
                }
            } 
            catch (TCException e1) 
            {
                e1.printStackTrace();
            }
        }

    }}

//方法二:添加addMouseListener()监听事件,并定义mouseUp(event)执行的操作
button.addMouseListener(new MouseAdapter() {
@Override
public void mouseUp(MouseEvent e) {
if(text.getText()==null)
{
MessageBox.post(“please input folder-name”, “提示:”, MessageBox.ERROR);
}
else
{
TCSession session = (TCSession) AIFUtility.getDefaultSession();
TCComponentFolderType foldertype;
try
{
MessageBox.post(“please ….”, “提示:”, MessageBox.ERROR);
foldertype = (TCComponentFolderType) session.getTypeComponent(“Folder”);
TCComponentFolder folder = foldertype.create(text.getText(), “create a folder”, “Folder”);
}
catch (TCException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
});
FormData fd_button = new FormData();
fd_button.top = new FormAttachment(0, 5);
fd_button.left = new FormAttachment(0, 157);
button.setLayoutData(fd_button);
button.setText(“\u786E\u5B9A”);

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值