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()方法使用 字符缩略...显示,双击复制实现