2013-04-22 62 views
-1

Text的内容超过Text的宽度时,我想在文本字段的末尾显示点(...)。如何在文本超出文本大小时显示点?

我试图使用ModifyListener没有成功。任何有关这方面的帮助将不胜感激。

@Override 
     public void modifyText(ModifyEvent e) { 
      // TODO Auto-generated method stub 



      if (wakeupPatternText.getText().length()>=12) { 


       String wakeuppattern=wakeupPatternText.getText(0, 11); 




       String dot="..."; 

       String wakeup=wakeuppattern+dot; 
wakeupPatternText.setText(wakeup); 




     }  


     } 
    }); 
+1

如果您尝试过某些方法,请始终解释您尝试的内容。 – Baz 2013-04-22 06:42:34

+0

你可以打印出任何日志并进行调试吗?如果您需要帮助,请向我们展示您编写的代码片段;导入部分应该是侦听器,它应该在其中包含文本的子字符串。 – 2013-04-22 07:13:41

+0

@Baz我试图添加一个修改侦听器,但主要问题是假设我有30个字符的文本,我的文本框只支持15个字符我正在追加..但作为我的按钮绑定文本框所有获取禁用为(..)是视为无效值。 – Rajesh 2013-04-22 07:16:46

回答

1

这应该做你想要什么:

private static String textContent = ""; 

public static void main(String[] args) 
{ 
    Display display = new Display(); 
    Shell shell = new Shell(display); 
    shell.setLayout(new FillLayout(SWT.VERTICAL)); 

    Text text = new Text(shell, SWT.BORDER); 

    text.addListener(SWT.FocusOut, new Listener() 
    { 
     @Override 
     public void handleEvent(Event e) 
     { 
      Text text = (Text) e.widget; 
      textContent = text.getText(); 

      text.setText(textContent.substring(0, Math.min(10, textContent.length())) + "..."); 
     } 
    }); 

    text.addListener(SWT.FocusIn, new Listener() 
    { 
     @Override 
     public void handleEvent(Event e) 
     { 
      Text text = (Text) e.widget; 

      text.setText(textContent); 
     } 
    }); 

    Button button = new Button(shell, SWT.PUSH); 
    button.setText("Lose focus"); 

    shell.pack(); 
    shell.open(); 
    while (!shell.isDisposed()) 
    { 
     if (!display.readAndDispatch()) 
      display.sleep(); 
    } 
    display.dispose(); 
} 

它侦听焦点事件并截断可见String如果太长。

这是它的外观:

随着重点:

enter image description here

没有焦点:

enter image description here


之所以你的代码不工作是以下几点:当你c来自VerifyListener的所有wakeupPatternText.setText(wakeup);侦听器本身再次被递归地调用。

+0

Ooops ....对不起,这愚蠢的misatke..anywayz再次感谢baz – Rajesh 2013-04-22 09:09:20

+0

@Rajesh不客气。正如我所说的,如果人们看到你已经尝试过的东西以及你被困在哪里,他们就会更有动力去帮助。 – Baz 2013-04-22 10:27:20

相关问题