类视图用于用户界面,它包含一个大的白色样式文本。
public class View extends ViewPart{
public static StyledText txtArea;
public void createPartControl(Composite parent){
//...
txtArea = new StyledText(parent, SWT.MULTI | SWT.BORDER | SWT.V_SCROLL);
txtArea.addText("My first line !");
new Server("This is my new second line !").start();
}
public static void addText(String str){
txtArea.append(str);
}
}
class Server extends Thread{
private String str;
Server(String str){
this.str = str;
}
@Override
public void run(){
View.addText(str);
}
}
类服务器不能调用 View.addText()。
如果我引用 txtArea 对象,它会起作用,但我必须调用 addText() 方法。
编辑:
线程“Thread-3”org.eclipse.swt.SWTException 中的异常:org.eclipse.swt.SWT.error(SWT.java:4361)处的线程访问无效
在 org.eclipse.swt.SWT.error(SWT.java:4276)
在 org.eclipse.swt.SWT.error(SWT.java:4247)
在 org.eclipse.swt.widgets.Widget.error(Widget.java:468)
在 org.eclipse.swt.widgets.Widget.checkWidget(Widget.java:359)
在 org.eclipse.swt.custom.StyledText.setText(StyledText.java:9885)
在 com.project.udp.views.View.log(View.java:255)
在 com.project.udp.views.Server.run(View.java:294)