65.9K
CodeProject 正在变化。 阅读更多。
Home

Java 语言 IDE

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.33/5 (25投票s)

2004 年 5 月 14 日

CPOL

3分钟阅读

viewsIcon

83586

downloadIcon

3401

这是一个为 Java 平台部分实现的 IDE。

引言

<-政治檄文>

分享这个软件的决定与其说是出于开源精神,不如说是为了抗议找不到程序员工作。如果他们不雇用我们,那我们就用免费软件充斥市场。团结起来!

<-/政治檄文>"

话不多说,我们开始吧。这是一个功能还不完整的 Java IDE。我的电脑上放了它大约 3 年了。起初,我认为我可以把它变成一个有商业价值的产品,但事与愿违。下面是项目中包含的类列表。

classes

已实现的部分功能如下:

代码补全。在调用'.'后可进行代码补全。调用方法时还不能支持代码补全。

ccpopp

当前加载项目文件的类视图。

wksp

编辑器自定义选项。

opt

Java SDK 设置工具。

sdk

以下是项目使用的其他库。

workspace

editlib 用于文本编辑器,bcglib(不知道是否仍公开可用)用于 UI。

这是编辑器窗口与后端解析器交互的基本设计。

design

当加载一个文件时,会创建一个解析器线程和与之关联的文件的映射。这使得文本编辑器能够向全局映射发送 EDIT 通知消息,该映射定位与提供的文件名关联的线程。正如你所见,这为解析器和文本编辑器之间提供了非常灵活的交互。文本编辑器可以在不与解析器进行进一步交互的情况下打开和关闭。如上图所示,每当发生编辑事件时,通过 CVisualJavaApp::SendEditMsg() 函数访问全局映射。该函数会定位线程 ID,并发布必要的通知。

加载项目时

项目从以下位置加载

CMainFrame::OnFileOpenworkspace().

从那里,一系列调用引出了代码中的下一个重要点,即调用:CProjectFile::CProjectFile()

上述函数会启动一个新线程,该线程代表解析器。上述函数是开始了解该项目的理想起点。如果你有兴趣添加代码,请查看 CVisualJavaAppp::InitInstance 方法。你还需要下载 Java SDK 的标准版。从上面的 SDK 工具设置窗口设置 API 和工具 bin 的路径。

运行可执行文件

下载 JAVA SDK 标准版。

对于想要试用该应用程序的用户,你需要将 codetemplates_1.txt 文件放在 我的文档 文件夹中。我在应用程序中硬编码了这个路径。其次,你必须按如下方式创建一个新项目:

文件->新建->("输入项目名称")->选择 Swing 作为应用程序类型,点击下一步按钮->点击 Frame 按钮->选择 Simple Text editor。

遵循以上步骤应该可以让你创建一个新的 Java 项目。假设 codetemplate 位于应有的位置,你将获得一个简单的编辑器代码。简单的文本编辑器是唯一带有模板代码的选项,你可以向该文件添加更多模板代码。

codetemplate 文件的格式是“<TEMPLATE_NAME>”后跟模板代码。下面是有效模板名称的列表:

  • <CLASS_DECLARATION>|<INTERFACE_DECLARATION>| <SWING_TEXT_EDITOR>
  • <FRAME_APP_WITH_MENU_SWING>|<FRAME_APP_WITH_TOOLBAR_SWING>
  • <FRAME_APP_SWING>|<DIALOG_APP_SWING>| <FRAME_APP_AS_SIMPLE_TEXT_EDITOR_AWT>
  • <FRAME_APP_WITH_MENU_AWT>|<FRAME_APP_WITH_TOOLBAR_AWT>| <FRAME_APP_AWT>
  • <DIALOG_APP_AWT>|<CONSOLE_APP>|<APPLET_APP>

插入模板代码时,唯一需要替换的是类名。这是通过将类名的每个出现替换为“<CLASS_NAME>”来实现的。

有关 codetemplates 的更多信息,请参阅 CCodeTemplate 类。关于 SDK 的一个警告:首先,你不能将 Java 项目放在 我的文档 文件夹中。将其放在 C: 目录中。“javac”工具出于某种原因不知道如何读取包含 我的文档(以及可能任何包含空格的文件夹名)的路径。你还必须从上面的 SDK 窗口设置工具路径。为了获得有限的代码补全支持,你还必须设置 API 路径。

© . All rights reserved.