2013-09-11 2 views

ответ

1

Используйте StyledText#setCaretOffset(int) для перемещения курсора в положение, в которое вы хотите вставить, а затем используйте StyledText#insert(String), чтобы вставить текст. Вот пример:

private static final Random RANDOM = new Random(System.currentTimeMillis()); 

public static void main(String[] args) 
{ 
    Display display = Display.getDefault(); 
    final Shell shell = new Shell(display); 
    shell.setText("StackOverflow"); 
    shell.setLayout(new FillLayout()); 

    final StyledText text = new StyledText(shell, SWT.BORDER); 
    text.setText("This is the default text"); 

    Button button = new Button(shell, SWT.PUSH); 
    button.setText("Add random text"); 
    button.addListener(SWT.Selection, new Listener() 
    { 
     @Override 
     public void handleEvent(Event arg0) 
     { 
      text.setCaretOffset(RANDOM.nextInt(text.getText().length())); 
      text.insert("RANDOM TEXT"); 
     } 
    }); 

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

Мне нужно иметь кнопку в том же месте, где текст должен быть вставлен. –

+0

@JohnSmith Вы хотите добавить 'Button' в' StyledText'? Если это так, есть пример [здесь] (http://git.eclipse.org/c/platform/eclipse.platform.swt.git/tree/examples/org.eclipse.swt.snippets/src/org/eclipse /swt/snippets/Snippet217.java). – Baz

+0

Да, я хочу сделать это. –

Смежные вопросы