Eclipse:以编程方式创建首选项页面

2023-11-29

我正在尝试以编程方式创建首选项页面,我需要使用首选项页面而不在plugin.xml 中定义首选项页面扩展点 我非常接近解决方案,我能够加载页面并在应用程序第一次加载时保存值,

我的代码的核心是

PreferenceManager pmngr= PlatformUI.getWorkbench().getPreferenceManager();
 //this come from other plugins that implements my personal IPreferences 
    PreferencePageRCP page =new PreferencePageRCP((IPreferences) element.createExecutableExtension("class"));

    PreferenceNodeRCP node= new PreferenceNodeRCP(page.getId(), page.getTitle(),null,PreferencePageRCP.class.getName());

    node.setPage(page);
     pmngr.addToRoot(node);

其中 PreferencePageRCP 是我的自定义 PreferencePage,所以此时我的 PreferencePage 正在工作!

但是当我第二次进入首选项窗口时,我在 Preference Node.createPage 上遇到了错误,所以现在我做了自己的 Preference Node 类覆盖 createPage,但现在我收到了 UI 错误

Problems occurred when invoking code from plug-in: "org.eclipse.jface".
!STACK 0
org.eclipse.swt.SWTException: Widget is disposed
 at org.eclipse.swt.SWT.error(SWT.java:4083)
 at org.eclipse.swt.SWT.error(SWT.java:3998)
 at org.eclipse.swt.SWT.error(SWT.java:3969)
 at org.eclipse.swt.widgets.Widget.error(Widget.java:468)
 at org.eclipse.swt.widgets.Widget.checkWidget(Widget.java:340)
 at org.eclipse.swt.widgets.Control.setVisible(Control.java:3370)
 at org.eclipse.jface.dialogs.DialogPage.setVisible(DialogPage.java:470)
 at org.eclipse.jface.preference.FieldEditorPreferencePage.setVisible(FieldEditorPreferencePage.java:374)
 at org.eclipse.jface.preference.PreferenceDialog.showPage(PreferenceDialog.java:1323)
 at org.eclipse.ui.internal.dialogs.FilteredPreferenceDialog.showPage(FilteredPreferenceDialog.java:673)
 at org.eclipse.jface.preference.PreferenceDialog$10.run(PreferenceDialog.java:708)
 at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
 andContributionItem.java:796
.................

所以第二次时 UI 中缺少了一些东西 我现在无法修复我的代码,有人成功以编程方式创建首选项页面???


下面是 java 代码,它允许以编程方式创建首选项页面:


//create an instance of the custom MyPreference class
IPreferencePage page = new MyPreference(); 
page.setTitle("Custom Configurations");

//创建一个新的PreferenceNode,它将出现在Preference窗口中 PreferenceNode 节点 = new PreferenceNode("1", 页);

//使用工作台的首选项管理器 PreferenceManager pm= PlatformUI.getWorkbench().getPreferenceManager();

pm.addToRoot(节点); //在PreferenceManager中添加节点

Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();

//实例化首选项对话框 PreferenceDialog pd = new PreferenceDialog(shell, pm);

//这一行很重要,它告诉 PreferenceDialog 应该写入哪个首选项存储 pd.setPreferenceStore(Activator.getDefault().getPreferenceStore()); pd.create(); pd.open();

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Eclipse:以编程方式创建首选项页面 的相关文章

  • Java 7 默认语言环境

    我刚刚安装了 jre7 我很惊讶地发现我的默认区域设置现在是 en US 对于jre6 它是de CH 与jre7有什么不同 默认区域设置不再是操作系统之一吗 顺便说一句 我使用的是Windows7 谢谢你的回答 编辑 我已经看到了语言环境
  • Android 中的列表(特别是 RecyclerView 和 CardView)如何工作

    请原谅我问这个问题 但我是 Android 开发新手 尽管我正在尝试了解developer android com 网站上的基础知识 但大多数示例 即使他们说它们是为 Android Studio 构建的 尚未设置为使用 Gradle 因此
  • 无法在 Eclipse 4.4 中安装 Google 插件

    我的 Windows 7 上有 Eclipse 4 4 尝试安装 Google 插件时出现以下错误 无法完成安装 因为一个或多个必需项目可能会 找不到 正在安装的软件 Google Plugin for Eclipse 4 3 3 5 1
  • Logback:SizeAndTimeBasedRollingPolicy 不遵守totalSizeCap

    我正在尝试以一种方式管理我的日志记录 一旦达到总累积大小限制或达到最大历史记录限制 我最旧的存档日志文件就会被删除 当使用SizeAndTimeBasedRollingPolicy在 Logback 1 1 7 中 滚动文件追加器将继续创建
  • 在 Struts 2 中传递 URL 参数而不使用查询字符串

    我想使用类似的 URL host ActionName 123 abc 而不是像这样传递查询字符串 host ActionName parm1 123 parm2 abc 我怎样才能在 Struts 2 中做到这一点 我按照下面的方法做了
  • 如何检测图像是否像素化

    之前有人在 SO 上提出过这样的问题 在Python中检测像素化图像 https stackoverflow com questions 12942365 detecting a pixelated image in python还有关于q
  • 在 MongoDB 和 Apache Solr 之间同步数据的简单方法

    我最近开始使用 MongoDB 和 Apache Solr 我使用 MongoDB 作为数据存储 并且希望 Apache Solr 为我的数据创建索引 以实现应用程序中的搜索功能 经过一些研究 我发现 基本上有两种方法可以在 MongoDB
  • Java:从集合中获取第一项

    如果我有一个集合 例如Collection
  • 如何通过注解用try-catch包装方法?

    如果应该在方法调用中忽略异常 则可以编写以下内容 public void addEntryIfPresent String key Dto dto try Map
  • 从直方图计算平均值和百分位数?

    我编写了一个计时器 可以测量任何多线程应用程序中特定代码的性能 在下面的计时器中 它还会在地图中填充花费了 x 毫秒的调用次数 我将使用这张图作为我的直方图的一部分来进行进一步的分析 例如调用花费了这么多毫秒的百分比等等 public st
  • 从休眠乐观锁定异常中恢复

    我有一个这样的方法 Transactional propagation Propagation REQUIRES NEW public void doSomeWork Entity entity dao loadEntity do some
  • Eclipse - 安装新的 JRE (Java SE 8 1.8.0)

    我正在尝试安装 Java 8 到目前为止我所做的 安装最新版本的 Eclipse 下载并安装 Java SE 运行时环境 8http www oracle com technetwork java javase downloads jre8
  • 如何从日期中删除毫秒、秒、分钟和小时[重复]

    这个问题在这里已经有答案了 我遇到了一个问题 我想比较两个日期 然而 我只想比较年 月 日 这就是我能想到的 private Date trim Date date Calendar calendar Calendar getInstanc
  • 我们如何测试包私有类?

    我正在看书Effective Java in Item 13 Minimize the accessibility of classes and members 它提到 为了方便测试 您可能想让类 接口或成员更易于访问 这在某种程度上是好的
  • 寻找局部最小值

    下面的代码正确地找到了数组的局部最大值 但未能找到局部最小值 我已经进行了网络搜索 以找到找到最小值的最佳方法 并且根据这些搜索 我认为我正在使用下面的正确方法 但是 在几天的时间里多次检查每一行之后 下面的代码中有一些我仍然没有看到的错误
  • JOGL 异常 - 在 java.library.path 中找不到gluegen-rt

    线程 main java lang UnsatisfiedLinkError中出现异常 java library path中没有gluegen rt 在 java lang ClassLoader loadLibrary ClassLoad
  • 替换文件中的字符串

    我正在寻找一种方法来替换文件中的字符串而不将整个文件读入内存 通常我会使用 Reader 和 Writer 即如下所示 public static void replace String oldstring String newstring
  • 将对象从手机共享到 Android Wear

    我创建了一个应用程序 在此应用程序中 您拥有包含 2 个字符串 姓名和年龄 和一个位图 头像 的对象 所有内容都保存到 sqlite 数据库中 现在我希望可以在我的智能手表上访问这些对象 所以我想实现的是你可以去启动 启动应用程序并向左和向
  • try-with-resources 中出现死代码警告,但翻译后的 try-catch-finally 中没有出现死代码警告

    以下代码使用try 有资源 https docs oracle com javase specs jls se7 html jls 14 html jls 14 20 3Java 8 中引入的构造 偶尔抛出 方法被声明为抛出一个偶尔的异常
  • 如何使用通配符模拟泛型方法的行为

    我正在使用 EasyMock 3 2 我想基于 Spring Security 为我的部分安全系统编写一个测试 我想嘲笑Authentication http docs spring io autorepo docs spring secu

随机推荐

  • 将数据集动态绑定到 RDLC 报告

    我想将动态数据集绑定到 rdlc 如果我在 ASPX 文件中使用内联数据源 静态绑定 我可以查看报告 但是 如果我使用以下代码 报告查看器将继续显示 正在加载 图像 我已经检查了数据集名称 如果我将数据集名称更改为 Orders2 它会显示
  • 如何修复 AttributeError: 'NoneType' 对象没有属性 'text'...循环时

    我是初学者 这个论坛上的答案非常宝贵 我正在使用 Python 3 和 Beautiful Soup 通过循环页码从同一网站上的多个网页中抓取 非表 数据 它有效 但我不断收到 AttributeError NoneType object
  • 触摸设备(iOS、Android)

    触摸输入上有刻度吗 我知道有灵敏度设置可以说明是否触摸 但它也有硬压力和低压的刻度吗 如果有 规模是多少 0 到 1 或 0 255 或者什么可能性 嗯 这完全取决于 API 以 Android 为例 有一个getPressure Moti
  • 如何在android中播放来自url的动画GIF图像?

    我正在将 giphy 集成到我的 Android 应用程序中 我怎样才能玩animated gifAndroid 中的 URL 中的图像 我应该使用ImageView WebView VideoViewETC 例如 如果我想播放动画this
  • 无法在 JavaScript 警报框中添加新行?

    我在 PHP 中生成一个字符串 然后最终将该字符串传递到 JavaScript 警报框中 我的问题是我实际上无法在警报框中添加换行符 我的代码如下所示 str This is a string n alert str This is the
  • CPython 和 PyPy 小数运算性能

    我想使用数百万个数据点 以小数表示 运行 100k 次模拟 我选择小数而不是浮点数是为了浮点精度和易于对我的逻辑进行单元测试 因为0 1 0 1 0 1对于浮点数不等于 0 3 我希望通过使用 PyPy 来加快模拟速度 但在我的测试过程中我
  • Python 中的类与类型

    我最近刚刚开始自学如何编码 我目前正在阅读想想Python 2对于 python 3 以及当它教授有关type 函数 它给出了例子type 2 哪个输出
  • Powershell 2.0 sudo 限制

    长期读者 但新海报 我已经为这个问题苦苦挣扎了一整天 这让我发疯 在搜索了这个网站和谷歌之后 我仍然陷入困境 基本上 我不知道如何在 Powershell 中实现与 Copy Item CmdLet 一起使用的 sudo 这是我的代码 简介
  • 如何在 WebSockets hybi 08+ 中构建(解构)数据帧?

    自从 Chrome 更新到 v14 以来 它们从草案第三版 to 草案第八版 我有一个在 WebSocket 上运行的内部聊天应用程序 虽然我已经让新的握手工作正常 但数据框架显然也发生了变化 我的 WebSocket 服务器基于Nugge
  • 客户端 Javascript 中的 Base64 编码和解码 [重复]

    这个问题在这里已经有答案了 JavaScript 中是否有任何方法可用于使用 Base64 编码对字符串进行编码和解码 某些浏览器 例如 Firefox Chrome Safari Opera 和 IE10 可以原生处理 Base64 看看
  • C++ 继承类中函数重载的问题

    这可能是一个菜鸟问题 对此感到抱歉 最近 当我尝试处理 C 中的一些高级内容 函数重载和继承时 我遇到了一个奇怪的问题 我将展示一个简单的例子 只是为了演示这个问题 有两个班级 classA and classB 如下 class clas
  • Scala 中的斑马拼图

    我正在尝试使用 Scala 完成 Udacity 的 CS212 但在使用 Zebra Puzzle 时遇到了问题 Python 中的一些概念并不容易转换为 Scala 尤其是对于像我这样的初学者 这些是我迄今为止管理的代码 val hou
  • 告诉 LESS 在某些特殊情况下不要惊慌并忽略奇怪的字符

    我们的服务器有一个用于 CSS 文件的自定义语言切换器 它识别某些模式和开关left right命令 除其他外 为了告诉它切换到哪里 我们使用 RIGHT and LEFT 任何需要的地方 div somecls margin RIGHT
  • 地图视图始终以我的位置为中心显示地图

    当用户按下按钮时 我使用以下代码来获取我的位置 mapview setShowsUserLocation YES 然后执行以下操作将地图置于用户位置的中心 void mapView MKMapView mapView didUpdateUs
  • 从文件部分填充数组

    我需要用文件中的数据部分填充 2 个数组并保持它们并行 但我当前的代码给了我看起来像乱码的错误 如果有人甚至可以帮助我解码错误 我将非常感激 Code Author Sam LaManna Course CSC 135 Lisa Frye
  • java.lang.NoSuchMethodException: [类 android.view.View] FirebaseRecyclerAdapter

    我正在尝试使用 FirebaseRecyclerAdapter 制作示例应用程序 但不断收到错误java lang RuntimeException java lang NoSuchMethodException
  • C# - WCF - 进程间通信

    用于进程间通信的最佳 WCF 绑定是什么 我已经在本地网络上使用了 WCF 它非常棒 我也想将它用于进程间通信 然而 我不想暴露网络上的通信 Use the 网络命名管道绑定用于同一台机器上的进程间通信 使用NetTcp绑定如果您跨越机器边
  • glutTimerFunc 问题

    我正在使用计时器函数来制作动画 但是当我将其放置在 Renderer 类中时遇到问题 void Renderer animate int value glutTimerFunc TIMERMSECS animate 0 错误 rendere
  • 如何在块循环中使用 PHPExcel 库确定文件结尾?

    使用 PHPExcel 库 我尝试迭代大约 1500 行 每行大约有 25 列 我正在使用这段代码 取自PHPExcel 运行内存为 256 512 和 1024MB Create a new Reader of the type defi
  • Eclipse:以编程方式创建首选项页面

    我正在尝试以编程方式创建首选项页面 我需要使用首选项页面而不在plugin xml 中定义首选项页面扩展点 我非常接近解决方案 我能够加载页面并在应用程序第一次加载时保存值 我的代码的核心是 PreferenceManager pmngr