SWT 关于 在一个类中调用另一个类的方法解决办法
SWT 关于 在一个类中调用另一个类的方法
要做一个管理系统,目前只有两个类:Logon.java(登录界面)和Opboard.java(操作界面).
/*-------------------------Logon.java-----------------------------*/
public class Logon {
.
.
.
public Logon() {
final Button okButton = new Button(shell, SWT.NONE);
okButton.setText( "确定 ");
okButton.setBounds(105, 120, 44, 23);
okButton.addSelectionListener(new SelectionListener(){ public void widgetSelected(SelectionEvent e){
if(e.getSource()==okButton){
if((text.getText().equals( "root "))&&(text2.getText().equals( "admin "))){
System.out.println( "mark1 "); //mark1
// 实例化Opboard
Opboard app=new Opboard();
System.out.println( "mark2 "); //mark2
//调用start()方法
app.start();
}
}
}
public void widgetDefaultSelected(SelectionEvent e){
}
});
}
public void start() {
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
display.dispose();
}
public static void main(String[] args) {
Logon log = new Logon(10,2);
log.start();
}
}
/*-----------------------------Opboard.java-----------------------------*/
public class Opboard {
//一些定义
public Opboard(){
//一些定义
}
public void start(){
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
display.dispose();
}
public static void main(String args[]){
Opboard app=new Opboard();
app.start();
}
}
运行之后 mark1出现,mark2没出现
pams是包名
报错:
Exception in thread "main " org.eclipse.swt.SWTException: Invalid thread access
要做一个管理系统,目前只有两个类:Logon.java(登录界面)和Opboard.java(操作界面).
/*-------------------------Logon.java-----------------------------*/
public class Logon {
.
.
.
public Logon() {
final Button okButton = new Button(shell, SWT.NONE);
okButton.setText( "确定 ");
okButton.setBounds(105, 120, 44, 23);
okButton.addSelectionListener(new SelectionListener(){ public void widgetSelected(SelectionEvent e){
if(e.getSource()==okButton){
if((text.getText().equals( "root "))&&(text2.getText().equals( "admin "))){
System.out.println( "mark1 "); //mark1
// 实例化Opboard
Opboard app=new Opboard();
System.out.println( "mark2 "); //mark2
//调用start()方法
app.start();
}
}
}
public void widgetDefaultSelected(SelectionEvent e){
}
});
}
public void start() {
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
display.dispose();
}
public static void main(String[] args) {
Logon log = new Logon(10,2);
log.start();
}
}
/*-----------------------------Opboard.java-----------------------------*/
public class Opboard {
//一些定义
public Opboard(){
//一些定义
}
public void start(){
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
display.dispose();
}
public static void main(String args[]){
Opboard app=new Opboard();
app.start();
}
}
运行之后 mark1出现,mark2没出现
pams是包名
报错:
Exception in thread "main " org.eclipse.swt.SWTException: Invalid thread access