标准对话框
Eclipse提供了所有的标准对话框和建立自定义对话框的简单途径。大多数标准对话框都是由org.eclipse.jface.dialogs.MessageDialog类提供的。这个类含有很多用于建立标准对话框的静态方法。下面表格列举了我们可以使用的标准对话框。
| 对话框类型 |
创建方法 |
与Swing中那些方法功能相同 |
| 确认(消息、询问图标、确认和取消按钮) |
MessageDialog.openConfirm( Shell parent, String title, String message) ,用户点击"确认"就返回true,否则返回false。 |
JOptionPane.showConfirmDialog(...) passing the optionType JOptionPane.OK_CANCEL_OPTION |
| 错误(消息、错误图标和确认按钮) |
MessageDialog.openError( Shell parent, String title, String message) |
JOptionPane.showMessageDialog(...) passing the messageType JOptionPane.ERROR_MESSAGE |
| 提示(消息、提示图标和确认按钮) |
MessageDialog.openInformation( Shell parent, String title, String message) |
JOptionPane.showMessageDialog(...) passing the messageType JOptionPane.INFORMATION_MESSAGE |
| 询问是否(消息、询问图标、是和否按钮) |
MessageDialog.openQuestion( Shell parent, String title, String question) 用户点击"是"就返回true,否则返回false。 |
JOptionPane.showConfirmDialog(...) passing the optionType JOptionPane.YES_NO_OPTION |
| 警告(消息、警告图标、确认按钮) |
MessageDialog.openWarning( Shell parent, String title, String message) |
JOptionPane.showMessageDialog(...) passing the messageType JOptionPane.WARNING_MESSAGE | 有人可能认为使用标准对话框的时候,JOptionPane类比MessageDialog提供了更大的灵活性。但是归根结底,在MessageDialog的构造函数和自定义对话框的帮助下,你几乎可以实现所有的事务。MessageDialog中缺少而JOptionPane拥有的唯一的特性是在HTML中直接进行消息格式化。但是使用自定义对话框的时候是可以实现这种功能的。
对话框辅助类
现在我们知道了可供选择的类型了,让我们来建立Invokatron需要的对话框吧。有两个地方需要对话框:
· 代码生成过程的确认信息,是否覆盖前面的代码。
· 输入一个值的对话框(与JOptionPane.showInputDialog()类似)。
这个类中的第一个方法是用于确认代码覆盖的:
public static boolean openOverwriteDialog(Shell parent) { return MessageDialog.openConfirm(parent, "Confirmation", "You are about to overwrite your class. " + "Are you sure you want to continue?"); } | 上面的代码非常简单,我们仅仅建立了一个常规的确认对话框。输入对话框有点麻烦:MessageDialog没有输入字段。我们只能建立一个新对话框类,可以是Dialog的子类。我们也可以建立MessageDialog的子类并重载它的createCustomArea()方法,添加输入字段。但是我们还有更简单的方法。
我们将使用InputDialog类:
public static String openInputDialog( Shell parent, String title, String question, String initialValue) {
InputDialog dlg = new InputDialog( parent, title, question, initialValue, null); //这是一个可供选择的有效的类 dlg.open();
if(dlg.getReturnCode()!=Window.OK) //点击"确认"了吗? return null;
return dlg.getValue(); } | 我们的对话框辅助类完成了。你可以在图4中看到这些对话框。
 图4:对话框 | Eclipse交响乐
Eclipse与音乐类似;一旦你学会了如何使用那些可供使用的乐器,你就能编写自己的交响乐了。在本文中我们简短地了解了两类工具:扩展点和对话框。
|
|