Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将类添加到org.eclipse.swt_Java_Eclipse_Eclipse Plugin_Swt_Jface - Fatal编程技术网

Java 将类添加到org.eclipse.swt

Java 将类添加到org.eclipse.swt,java,eclipse,eclipse-plugin,swt,jface,Java,Eclipse,Eclipse Plugin,Swt,Jface,我正在开发一个Eclipse插件,它需要修改Eclipse核心包中的类。我想编写自己的org.eclipse.swt.StyledText(不通过源代码扩展byt copy并修改某些行为),并在org.eclipse.jface.text.TextViewer中实例化它,而不是默认的StyledText 修改TextViewer的最佳方法似乎是制作我自己的org.eclipse.jface插件版本,并将其打包发布到功能项目中 但向swt包中添加类似乎更难,首先是因为根据所使用的操作系统(org.

我正在开发一个Eclipse插件,它需要修改Eclipse核心包中的类。我想编写自己的org.eclipse.swt.StyledText(不通过源代码扩展byt copy并修改某些行为),并在org.eclipse.jface.text.TextViewer中实例化它,而不是默认的StyledText

修改TextViewer的最佳方法似乎是制作我自己的org.eclipse.jface插件版本,并将其打包发布到功能项目中

但向swt包中添加类似乎更难,首先是因为根据所使用的操作系统(org.eclipse.swt.cocoa,org.eclipse.swt.gtk…)有不同的JAR,而且还因为复制粘贴StyledText的代码并不容易,因为需要调用外部方法等待严格的StyledText


有什么想法吗?

我对org.eclipse.jface.preference.ColorSelector做了类似的操作。我真的需要一个可以接受空值的颜色小部件。如果不重构小部件,这是不可能实现的

因为重写相应的类是不够的,因为很多功能都是封装的,所以我也希望直接修改整个类

然后,正如格雷格和巴兹所提到的,这是一个维护地狱。假设您希望将您的小部件包含在RCP插件中。那么你怎么办?RCP平台提供自己的SWT包

我的解决方案简单明了。您可以将整个类复制粘贴到自己的新类中,然后在应用程序中使用该类


但在您的情况下,您似乎遇到了不止一个类(
TextViewer
StyledText
)。不过,只有当所需的行为超出了平台的能力时,我才会使用复制粘贴方法。

为什么需要修改这些类?这将是一场维护噩梦,正如您所发现的,更改StyledText将非常困难。我知道我将要做一些非常糟糕的事情,我的目标是制作一个插件来修改插入符号的行为和显示。我想我别无选择。@SegFault如果你能详细解释你想要实现的目标,可能会有一个更简单的方法……我想在文本编辑器中添加多个光标。游标在StyledText中管理。