如何在SWT styledtext中显示完整的数组内容?

时间:2015-01-03 11:49:15

标签: java swt

我正在尝试打印目录中的文件名,但只显示其中一个。 那么如何在SWT styledtext中显示完整的数组内容? 还有谁可以告诉我一些SWT的在线教程?

package gui;
import java.io.*;

import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.ControlAdapter;
import org.eclipse.swt.events.ControlEvent;
import org.eclipse.swt.custom.StyledText;

public class FileEditor {

    /**
     * Launch the application.
     * @param args
     */
    public static void main(String[] args) {
        Display display = Display.getDefault();
        Shell shell = new Shell();
        shell.setSize(450, 300);
        shell.setText("SWT Application");

        Button btnShow = new Button(shell, SWT.NONE);
        btnShow.addControlListener(new ControlAdapter() {
            @Override
            public void controlMoved(ControlEvent e) {

            }
        });

        StyledText styledText = new StyledText(shell, SWT.BORDER | SWT.FULL_SELECTION);
        styledText.setBounds(154, 36, 256, 191);

        btnShow.addSelectionListener(new SelectionAdapter() {
            @Override
            public void widgetSelected(SelectionEvent e) {
                File newdir = new File("d:\\Softwares");
                String[] list= newdir.list();

                    if(newdir.isDirectory())
                {
                    for(int i=1;i<list.length;i++)
                    {   
                        styledText.setText(list[i]);

                    }
                }

            }
        });

        btnShow.setBounds(23, 146, 75, 25);
        btnShow.setText("Show");    

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

1 个答案:

答案 0 :(得分:0)

StyledText setText方法用新文本替换所有现有文本,因此您只获取最后一项。

相反,您可以使用append方法添加到控件的末尾,例如:

for (String item : list)
 {   
   styledText.append(item + '\n');  // Add item with new line between entries
 }