我用StyledText做了一个文本框,如何才能实现下面的功能:
    选择10字体输入一段文字,再选用15号字体输入时,原来用10号字体输入的文字不发生变化,也就是说每换一种字体时,之前的文字不发生变化

解决方案 »

  1.   

    Notepad都没这个直接功能 
    看来要花点心思关注
      

  2.   

    public static void main(String[] args) {
    final Display display = new Display();
    Shell shell = new Shell(display);
    final FontData fontData = new FontData();
    fontData.setHeight(10);
    //shell.setLayout(new FillLayout());
    final Text fontText = new Text(shell, SWT.NONE);
    fontText.setBounds(1, 1, 100, 15);
    Button btn = new Button(shell, SWT.NONE);
    btn.setText("Set FontSize");
    btn.setBounds(110, 1, 100, 15);
    btn.addSelectionListener(new SelectionListener(){ public void widgetDefaultSelected(SelectionEvent arg0) {
    // TODO Auto-generated method stub

    } public void widgetSelected(SelectionEvent arg0) {
    String str = fontText.getText();
    fontData.setHeight(Integer.parseInt(str));
    }

    });
    final StyledText text = new StyledText(shell, SWT.BORDER | SWT.MULTI);
    text.setBounds(0, 60, 300, 200);

    text.addExtendedModifyListener(new ExtendedModifyListener(){ public void modifyText(ExtendedModifyEvent e) {
    int start = e.start;
    int length = e.length;
    StyleRange style3 = new StyleRange();
    style3.start = start;
    style3.length =length;
    style3.font = new Font(display, fontData);
    text.setStyleRange(style3);
    }

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

  3.   

    每次modifyText的时候都会new一个Font,你自己用的时候记得改一下阿