PC端 SWTTools.getShortText()方法使用 字符缩略...显示,双击复制实现

Posted 十壹、

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PC端 SWTTools.getShortText()方法使用 字符缩略...显示,双击复制实现相关的知识,希望对你有一定的参考价值。

1.SWTTools类中getShortText()方法
第一个参数GC方法,第二个参数文字内容,第三个参数想要显示长度,只要超出这个长度就会用…显示

public static String getShortText(GC gc, String title, int width) 
        String titleString;
        for (int i = 6; i < title.length(); i++) 
            titleString = title.substring(0, i) + "...";
            Point pt = gc.textExtent(titleString);
            if (pt.x + titleString.length() >= width) 
                return titleString;
            
        
        titleString = title;
        return titleString;
    

实战例子
在接口中调用要开启线程Display.getDefault().syncExec(new Runnable() );,UI改动只能在主线程中改动,有改动最后要redraw去重新绘制。

	if (!TextUtils.isEmpty(userInfo.getDuty())) 
       GC dutyGC = new GC(duty);
       duty.setText(SWTTools.getShortText(dutyGC, userInfo.getDuty(), 440));
       Point pt = new Point(0, 0);
       pt.x = dutyGC.stringExtent(duty.getText()).x + UIConstant.Label_MARGIN;
       pt.y = dutyGC.stringExtent(duty.getText()).y + UIConstant.Label_MARGIN;
       duty.setBounds(MARGIN, 159, pt.x + 24, 28);
       duty.setToolTipText(COPY_TIP);
       duty.addMouseListener(mouseListener);
       dutyGC.dispose();
       duty.redraw();
       

2.双击复制的实现
开始要定义个变量 private final String COPY_TIP = “双击复制”;使用setToolTipText()方法可以使鼠标停留时显示文字内容,最后添加鼠标监听事件addMouseListener(),里面有mouseDoubleClick()双击的方法。最后就是实现双击复制的逻辑。

 private MouseListener mouseListener = new MouseListener() 

        @Override
        public void mouseUp(MouseEvent arg0) 
            // TODO Auto-generated method stub
        

        @Override
        public void mouseDown(MouseEvent arg0) 
            // TODO Auto-generated method stub
        
        
        @Override
        public void mouseDoubleClick(MouseEvent arg0) 
            // TODO Auto-generated method stub
            Label text = (Label)arg0.widget;
            if (text != null && !TextUtils.isEmpty(text.getText())) 
                TextTransfer textTransfer = TextTransfer.getInstance();
                Clipboard board = new Clipboard(null);
                Object[] datas = new Object[1];
                Transfer[] types = new Transfer[1];
                String textData = text.getText();

                datas[0] = textData;
                types[0] = textTransfer;
                board.setContents(datas, types);

            
        
    ;

以上是关于PC端 SWTTools.getShortText()方法使用 字符缩略...显示,双击复制实现的主要内容,如果未能解决你的问题,请参考以下文章

PC端 SWTTools.getShortText()方法使用 字符缩略...显示,双击复制实现

PC端 SWTTools.getShortText()方法使用 字符缩略...显示,双击复制实现

html5可以开发PC端软件吗

vue--移动端实现文档的下载(pc端可用)

前端开发中pc端和移动端的区别

移动端HTML5如何开发?跟PC端有啥区别