PreferencePage的小问题花了大把时间

在Eclipse里可以用FieldEditorPreferencePage简化Preference page的创建,但在随机文档里只重点说了要实现createFieldEditors方法,我明明实现了它,但点Preference命令时却总是提示:
PreferencePage的小问题花了大把时间java.lang.InstantiationException: org.haree.mobject.ui.BasicPreferencePage 
PreferencePage的小问题花了大把时间    at java.lang.Class.newInstance0(Unknown Source) 
PreferencePage的小问题花了大把时间    at java.lang.Class.newInstance(Unknown Source) 
PreferencePage的小问题花了大把时间    at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:
141
PreferencePage的小问题花了大把时间    at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:
124
PreferencePage的小问题花了大把时间    at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:
113
PreferencePage的小问题花了大把时间    at org.eclipse.ui.internal.WorkbenchPlugin.createExtension(WorkbenchPlugin.java:
189
PreferencePage的小问题花了大把时间    at org.eclipse.ui.internal.dialogs.WorkbenchPreferenceNode.createPage(WorkbenchPreferenceNode.java:
60
PreferencePage的小问题花了大把时间    at org.eclipse.jface.preference.PreferenceDialog.showPage(PreferenceDialog.java:
985
PreferencePage的小问题花了大把时间    at org.eclipse.jface.preference.PreferenceDialog$
8.selectionChanged(PreferenceDialog.java:529
PreferencePage的小问题花了大把时间    at org.eclipse.jface.viewers.StructuredViewer$
3.run(StructuredViewer.java:450
PreferencePage的小问题花了大把时间    at org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:
616
PreferencePage的小问题花了大把时间    at org.eclipse.core.runtime.Platform.run(Platform.java:
747
PreferencePage的小问题花了大把时间    at org.eclipse.jface.viewers.StructuredViewer.firePostSelectionChanged(StructuredViewer.java:
448
PreferencePage的小问题花了大把时间    at org.eclipse.jface.viewers.StructuredViewer.setSelection(StructuredViewer.java:
1094
PreferencePage的小问题花了大把时间    at org.eclipse.jface.preference.PreferenceDialog.selectSavedItem(PreferenceDialog.java:
807
PreferencePage的小问题花了大把时间    at org.eclipse.jface.preference.PreferenceDialog$
3.run(PreferenceDialog.java:309
PreferencePage的小问题花了大把时间    at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:
69
PreferencePage的小问题花了大把时间    at org.eclipse.jface.preference.PreferenceDialog.createContents(PreferenceDialog.java:
305
PreferencePage的小问题花了大把时间    at org.eclipse.jface.window.Window.create(Window.java:
348
PreferencePage的小问题花了大把时间    at org.eclipse.jface.dialogs.Dialog.create(Dialog.java:
925
PreferencePage的小问题花了大把时间    at org.eclipse.ui.internal.OpenPreferencesAction.run(OpenPreferencesAction.java:
70
PreferencePage的小问题花了大把时间    at org.eclipse.jface.action.Action.runWithEvent(Action.java:
881
PreferencePage的小问题花了大把时间    at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:
915
PreferencePage的小问题花了大把时间    at org.eclipse.jface.action.ActionContributionItem.access$
2(ActionContributionItem.java:866
PreferencePage的小问题花了大把时间    at org.eclipse.jface.action.ActionContributionItem$
7.handleEvent(ActionContributionItem.java:785
PreferencePage的小问题花了大把时间    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:
82
PreferencePage的小问题花了大把时间    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:
796
PreferencePage的小问题花了大把时间    at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:
2772
PreferencePage的小问题花了大把时间    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:
2431
PreferencePage的小问题花了大把时间PreferencePage的小问题花了大把时间

找了一个多小时,才发现原来是要提供一个没有参数的构造方法才可以。想了一下,可能因为Eclipse最终是使用Class.newInstance()的方式来生成界面元素的,所以有这个要求。

算是一个经验吧,我觉得Eclipse的帮助再丰富些就好了,特别是应该提供更多的例子代码。

顺便推荐下面两篇文章(要是Eclipse帮助都这么详细该多好):

Mutatis mutandis - Using Preference Pages as Property Pages

Simplifying Preference Pages with Field Editors

本文转自博客园八进制的博客,原文链接:PreferencePage的小问题花了大把时间,如需转载请自行联系原博主。

上一篇:模板建站案例-中小企业建站-网页建站-建站案例库 - 阿里云建站


下一篇:云服务器可以用来挂网页游戏吗?