我正在尝试打印目录中的文件名,但只显示其中一个。 那么如何在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();
}
}
}
}
答案 0 :(得分:0)
StyledText
setText
方法用新文本替换所有现有文本,因此您只获取最后一项。
相反,您可以使用append
方法添加到控件的末尾,例如:
for (String item : list)
{
styledText.append(item + '\n'); // Add item with new line between entries
}