2013-09-19 2 views
2

У меня есть программа, которую я использую в качестве эксперимента, чтобы привыкнуть к графическому интерфейсу. Он в основном принимает квадратичную форму f (x) = ax^2 + bx + c и находит вещественные нули, y-перехват и ось симметрии. Он работает хорошо, как вычисления, так и все. Моя проблема в том, что я создал текстовое поле без редактирования (с помощью window builder SWT) и независимо от того, что я делаю, он всегда печатает все на одной строке! \ n не работает, \ r \ n не работает ... Пожалуйста, помогите.Текстовый вывод SWT и новые строки

Button btnNewButton = new Button(shlParacalc, SWT.NONE); 
btnNewButton.addSelectionListener(new SelectionAdapter() { 
    @Override 
    public void widgetSelected(SelectionEvent e) { 

     String aval = alphabox.getText(); 
     double a = Double.parseDouble(aval); 

     String bval = betabox.getText(); 
     double b = Double.parseDouble(bval); 

     String cval = gammabox.getText(); 
     double c = Double.parseDouble(cval); 


     CalcLib mathObj = new CalcLib();  

     double yint = mathObj.yIntercept(a, b, c); 
     double axis = mathObj.Axis(a, b); 
     double zero[] = mathObj.Zero(a, b, c); 


     outputbox.append("y-intercept = " + yint); // these four lines need 
     outputbox.append("axis of symmetry = " + axis); //to be printed 
     outputbox.append("1st zero = " + zero[0]); //on individual lines 
     outputbox.append("2nd zero = " + zero[1]); 
+0

Какой тип выгрузки? – Turkish

+0

Это тип Текст, не TextArea или текстовое поле. –

+0

http://www.java2s.com/Tutorial/Java/0280__SWT/Createamultiplelinetextfield.htm – Baz

ответ

1

Возможно, вы используете неправильный style bits. Этот код работает:

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

    final Text text = new Text(shell, SWT.MULTI | SWT.BORDER | SWT.WRAP | SWT.V_SCROLL); 

    Button button = new Button(shell, SWT.NONE); 
    button.setText("Add text"); 
    button.addListener(SWT.Selection, new Listener() 
    { 
     @Override 
     public void handleEvent(Event e) 
     { 

      text.append("y-intercept = \n"); 
      text.append("axis of symmetry = \n"); 
      text.append("1st zero = \n"); 
      text.append("2nd zero = \n"); 
     } 
    }); 

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

Perfect. Все, что мне нужно было сделать, это заменить SWT.NONE на SWT.MULTI ... Спасибо –

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