Java SWT-开孔/处理壳体-一般做法
我正在寻找处理贝壳的一般做法 主应用程序菜单单击执行以下顺序 DialogHandler类=(执行我的应用程序基本GUI类) 问题。因为我正在DialogHandler中打开对话框,所以我必须在该类中处理它吗Java SWT-开孔/处理壳体-一般做法,java,swt,dispose,jface,Java,Swt,Dispose,Jface,我正在寻找处理贝壳的一般做法 主应用程序菜单单击执行以下顺序 DialogHandler类=(执行我的应用程序基本GUI类) 问题。因为我正在DialogHandler中打开对话框,所以我必须在该类中处理它吗 while(!shell.isDisposed()){ if(!display.readAndDispatch()) display.sleep(); } display.dispose(); 我的GUI基类AplotBaseDialog=(扩展了Titlea
while(!shell.isDisposed()){
if(!display.readAndDispatch())
display.sleep();
}
display.dispose();
我的GUI基类AplotBaseDialog=(扩展了TitlearReadialog)
构造函数正在从DialogHandler类接收Shell
问题:我是否将While(!shell.isDisposed())代码放在此类中
我还在AplotBaseDialog类的按钮中打开几个对话框
private void showPDFCreateDialog() {
pdfDialog = new AplotCreatePDFDialog(this, getShell(), session);
pdfDialog.open();
pdfDialog.getShell().setSize(700, 400);
}
问题:我必须在每个对话框类中包含dispose代码,还是在close按钮代码中包含dispose()就足够了
问题:这是创建和打开对话框的正确方法吗
问题:现在,我没有在应用程序代码的任何地方设置显示
Display display = Display.getDefault();
我只是将一个Shell从父对话框传递到子对话框,并在需要时使用asyncExec
Display.getDefault().asyncExec(new Runnable() {
public void run() {
}
}
问题:我的应用程序代码中需要有while(!shell.isDisposed())吗?JFace
Dialog
为您提供以下功能。您不需要做任何事情,除非您想构建自己的对话框,而不是扩展JFacedialog
//this is for keep reading events from event table
while(!shell.isDisposed()){
if(!display.readAndDispatch())
display.sleep();
}
display.dispose();
也就是说,您必须
关闭()
对话框,才能Shell
成为dispose
d。
//this is for keep reading events from event table
while(!shell.isDisposed()){
if(!display.readAndDispatch())
display.sleep();
}
display.dispose();