代码编辑器的java实现
javac编译命令
javac编译命令javac是Java编译器的命令行工具,用于将Java源代码文件编译成字节码文件。
本文将详细介绍javac编译命令的用法和参数,并提供一些实际示例。
我们需要安装Java开发工具包(JDK),它包含了javac命令和其他Java开发所需的工具和库。
安装完成后,我们就可以使用javac 命令来编译Java源代码了。
javac命令的基本用法如下:```javac [options] [source files]```其中,options是可选的编译选项,source files是需要编译的Java源代码文件。
下面是一些常用的javac编译选项:- `-d directory`:指定编译后的字节码文件存放的目录。
如果不指定该选项,默认会将字节码文件放在源代码所在的目录下。
- `-classpath path`:指定编译时所需的类路径,用于查找依赖的类和库文件。
path可以是一个目录,或者是多个目录和JAR文件的路径,用冒号(Windows系统使用分号)分隔。
- `-sourcepath path`:指定查找源代码文件的路径。
path可以是一个目录,或者是多个目录的路径,用冒号(Windows系统使用分号)分隔。
- `-encoding encoding`:指定源代码的字符编码。
如果不指定该选项,默认会使用平台的默认编码。
- `-g`:生成调试信息,包括局部变量表和源代码行号。
这对于调试和分析程序非常有用。
- `-nowarn`:关闭警告信息的输出。
如果不指定该选项,默认会输出警告信息。
除了上述选项,javac还支持其他一些高级选项,如限制编译器的警告级别、启用或禁用特定的编译特性等。
详细信息可以通过运行`javac -help`命令查看。
下面是一些实际的示例,演示了javac命令的使用:1. 编译单个Java源代码文件,并将字节码文件放在指定目录下:```javac -d bin HelloWorld.java```上述命令将HelloWorld.java编译成字节码文件,并将字节码文件存放在bin目录下。
代码编辑器的java实现
代码编辑器的java实现摘要如果我们把不同的程序开发人员比作三国演义中的各路诸侯大将的话,那么代码编辑器绝对可以称之我们手中的神兵利器。
对于每个程序猿来说,内心的深处都想有一把自己的“青龙偃月刀”和属于自己的一个代码编辑器。
我也有这个想法,我也想自己写一个代码编辑器来满足我的内心深处。
所以这次java的课程作业我选择了这个题目!关键词:Java;代码编辑器;关键字变色;编译和运行前言通过一学期的Java学习,我对Java的理论知识有了一些了解。
但是,只有理论联系实际才能更好的掌握理论,所以这次Java课程设计我选择了Java程序编辑器这个课题,希望可以锻炼自己的动手能力。
我上交给老师您的代码是我参考的网上的一个牛人写的代码,并在他的代码上进行了功能的增加,至于我增加了多少功能,我会论文的附录中给出详细的对比。
1. 软件的定义编写一个界面像Windows系统的记事本的代码编辑器,功能比记事本更强大(针对某一方面)具备以下功能:(1)打开、保存文件功能;(2)能够识别Java中的关键字并能将关键字以高亮的形式显示出来;(3)能够批量的删除代码中的注释;(4)能通过按下按钮调用DOS窗口;(5)能编译和运行Java程序;(6)能够检查括号是否匹配。
2.开发环境IDE: eclipseJDK: jdk-7u45-windows-x64OS:Windows 7 —X643.代码的详细说明主界面:syntaxcolor.v4包中的DemoFrame.java文件,主界面就是一个Frame,然后在上面加上一个菜单栏,一个工具栏和两个Panel,一个panel里面放着JTextPane,另一个里面放着一个几个JLable,用来显示当前鼠标是在第几行,第几列,该Panel放在Frame最下面。
菜单栏:总共有3个JMenu,一个是文件,一个是编辑,一个是帮助。
3个菜单里面各有下拉菜单。
文件JMenu有2个JMenuItem分别为openMenuItem、ExitMenuItem,编辑JMenu有2个JMenuItem分别为cutMentItem、pasteMEnuItem,帮助JMenu有一个JMenuItem是aboutMenuItem用来显示代码编辑器的相关的信息。
如何在程序编辑器中进行代码文档生成
如何在程序编辑器中进行代码文档生成在程序编辑器中进行代码文档生成的方法代码文档在软件开发中起到了重要的作用,它能够帮助开发者理解代码逻辑,方便团队协作,以及为后续的维护工作提供支持。
为了提高代码文档的生成效率和质量,现在许多程序编辑器都提供了相应的功能和插件来辅助开发者进行代码文档的生成工作。
本文将介绍在程序编辑器中进行代码文档生成的一些常用方法。
一、利用代码注释生成文档代码注释是开发者在代码中添加的一些说明性文字,通常以特定的符号或标记进行标识。
在许多编程语言中,如Java、Python等,都支持特定的代码注释标记来生成代码文档。
以Java语言为例,我们可以使用JavaDoc注释来生成代码文档。
JavaDoc注释以"/**"开头,以"*/"结尾,可以在注释中包含对类、方法、属性的说明。
例如:```/*** 这是一个示例类,用于演示JavaDoc注释的使用方法。
*/public class ExampleClass {/*** 这是一个示例方法,用于演示JavaDoc注释在方法上的使用。
* @param param 示例参数* @return 示例返回值*/public int exampleMethod(int param) {// 示例代码return param * 2;}}```程序编辑器中的JavaDoc插件可以根据这些注释,自动生成相应的代码文档。
开发者只需要在编辑器中配置好JavaDoc插件的相关设置,即可快速生成具有规范格式的代码文档。
二、使用工具生成代码文档除了利用代码注释生成文档外,还可以使用各种专门的代码文档生成工具。
这些工具通常提供了更多的功能和配置选项,能够生成更加全面、详细的代码文档。
常见的代码文档生成工具有:1. Doxygen:适用于C、C++、Objective-C、Java等多种编程语言,支持生成HTML、PDF等多种格式的文档;2. Javadoc:适用于Java语言,可以将Java代码转换为HTML格式的文档;3. Sphinx:适用于Python语言,支持生成包括HTML、PDF在内的多种文档格式;4. Swagger:适用于RESTful API文档的生成,支持多种编程语言和文档格式。
使用jdk编写和运行java程序的基本过程
使用JDK编写和运行Java程序的基本过程在现代软件开发中,Java已经成为了一个非常重要的编程语言。
无论是在大型企业级软件中,还是在小型项目中,Java都有着广泛的应用。
要想使用Java进行程序开发,首先需要安装JDK(Java Development Kit),并且了解如何编写和运行Java程序。
在本文中,我将为你详细介绍使用JDK编写和运行Java程序的基本过程。
1. 安装JDK要使用JDK编写和运行Java程序,必须先安装JDK。
在官方网站上下载适合你操作系统的JDK版本,并按照官方指南进行安装。
安装完成后,需要配置系统的环境变量,以便系统能够识别JDK的安装路径。
2. 编写Java程序一旦JDK安装完成并配置好环境变量,就可以使用文本编辑器(如Notepad++、Sublime Text等)编写Java程序。
打开文本编辑器,然后输入Java程序的源代码。
下面是一个简单的Java程序示例:```javapublic class HelloWorld {public static void main(String[] args) {System.out.println("Hello, World!");}}```在这个示例中,我们定义了一个名为HelloWorld的类,并在其中定义了一个名为main的方法。
在main方法中,使用System.out.println函数打印了一行文本“Hello, World!”。
3. 保存Java程序编写完Java程序后,需要将其保存为.java文件。
在保存文件时,需要注意文件名必须和类名完全一致,包括大小写。
在本例中,文件名应该是HelloWorld.java。
4. 编译Java程序保存Java程序后,需要使用JDK中的编译器(javac)将其编译成字节码文件。
在命令行中,进入.java文件所在的目录,并执行以下命令:```shelljavac HelloWorld.java```如果没有错误信息输出,说明编译成功。
java开发环境设置与java程序结构实验总结
java开发环境设置与java程序结构实验总结一、引言在现代软件开发领域,Java语言因其跨平台性、高扩展性和丰富的资源生态系统而成为最受欢迎的编程语言之一。
为了能够顺利进行Java开发,正确设置Java开发环境并了解Java程序的结构是至关重要的。
本文将围绕着这两个主题展开探讨,并总结一些关键的实验经验。
二、Java开发环境设置1. 安装Java开发工具包(JDK)Java开发环境的第一步是安装Java开发工具包(JDK)。
JDK是一个包含了Java编译器、Java运行时环境(JRE)和其他工具的软件包。
我们可以从Oracle官方网站上下载和安装JDK。
安装完成后,我们需要配置环境变量,以便在命令行中能够访问到Java和相关工具。
2. 配置开发环境为了能够顺利进行Java开发,我们需要配置开发环境。
我们需要安装一个集成开发环境(IDE),如Eclipse或IntelliJ IDEA。
这些IDE提供了许多有用的功能,例如代码自动补全、调试器和版本控制集成。
我们还需要配置项目的构建工具,如Maven或Gradle,以便能够管理依赖关系和构建过程。
3. 测试开发环境在配置完开发环境后,我们需要验证我们的设置是否正确。
可以通过运行一个简单的Java程序来测试开发环境。
我们可以创建一个简单的HelloWorld程序,并在IDE中运行它,或使用命令行编译和运行该程序。
如果一切顺利,我们应该能够看到程序成功输出“Hello, World!”。
三、Java程序结构实验总结在Java开发中,了解Java程序的结构和组成是非常重要的。
以下是一些关于Java程序结构的关键知识点和实验总结:1. 类和对象Java程序由类组成,类是对象的模板或蓝图。
在实验中,我们可以创建一个简单的类,并创建该类的对象。
通过练习,我们可以更好地理解类和对象之间的关系,以及如何使用它们来构建复杂的程序。
2. 数据类型和变量Java有多种基本数据类型,如整数、浮点数、布尔值和字符。
java反编译工具 idea使用案例
java反编译工具 idea使用案例
IDEA 是一个基于 Java 开发的集成开发环境(IDE),提供了很多强大的开发工具和功能。
虽然 IDEA 本身不包含反编译工具,但可以通过安装第三方插件来实现 Java 反编译功能。
下面是使用 IDEA 进行 Java 反编译的步骤:
1. 打开 IDEA,并创建一个新的 Java 项目,或者打开一个已有的项目。
2. 在 IDEA 的插件库中搜索并安装 `Java Decompiler` 插件。
可以在 IDE 的设置界面中选择 `Plugins`,然后搜索并安装 `Java Decompiler`。
3. 安装完成后,重新启动 IDEA。
4. 打开需要进行反编译的 Java 类文件。
5. 在 IDEA 的代码编辑器中,右键点击需要反编译的类文件,选择 `Decompile Class`。
6. 在新的窗口中,将会显示该类文件的反编译代码。
7. 可以查看和分析反编译后的代码,进行修改和重构。
需要注意的是,有些类文件可能会被编译为 Kotlin(一种运行在 JVM 上的静态类型编程语言)或其他语言,如果想要反编
译这些类文件,可能需要安装相应的插件。
此外,还有其他的反编译工具可以与 IDEA 配合使用,比如`JD-GUI`、`Fernflower` 等。
可以通过将这些工具的 JAR 文件添加到项目的依赖中,然后使用 IDEA 的调试功能来查看反编译的代码。
java代码动态编译
Java代码动态编译1. 简介在Java开发中,编写好的代码需要经过编译才能运行。
通常情况下,我们会使用Java的编译器将代码转换成字节码,然后再由Java虚拟机(JVM)执行。
但有时候,我们可能需要在程序运行过程中动态地编译代码,即实现Java代码动态编译。
本文将详细介绍Java代码动态编译的概念、用途和实现方式。
2. 动态编译的概念动态编译是指在程序运行过程中,将一段字符串类型的Java代码转换成可执行的字节码,并且执行该字节码。
相比于传统的静态编译,动态编译允许我们在不修改源代码的情况下,根据特定的需求生成代码并执行。
3. 动态编译的用途动态编译在某些场景下非常有用。
下面列举了几种常见的用途:3.1 插件开发动态编译可以用于插件化开发。
我们可以允许用户在程序运行时加载、卸载和更新插件,而无需重启整个应用程序。
插件以字符串的形式传入,通过动态编译生成可执行的字节码,然后被加载和执行。
3.2 动态织入动态编译还可以用于AOP(面向切面编程)。
在AOP中,我们可以在运行时根据特定规则将切面代码织入到目标代码中,实现类似于日志记录、性能监控等功能。
3.3 脚本语言支持通过动态编译,Java程序可以支持解释脚本语言,比如JavaScript、Groovy等。
这样做的好处是,程序允许用户通过脚本语言编写部分逻辑,动态地加载和执行。
3.4 运行时代码生成有时候我们需要根据特定的需求生成代码,然后立即执行。
动态编译可以满足这一需求。
通过字符串拼接生成代码,然后动态编译执行,可以减少反射等运行时开销。
4. 动态编译的实现方式在Java中,动态编译的实现方式有多种,下面介绍两种常见的方式:4.1 使用Java Compiler APIJava Compiler API允许我们在程序运行时动态地将Java代码编译为字节码。
它提供了一个接口javax.tools.JavaCompiler,通过该接口我们可以获取到Java编译器,并使用它编译代码。
java languagetool 示例代码
java languagetool 示例代码
以下是一个简单的Java语言工具示例代码,用于展示如何使用`LanguageTool`的`jar`包来进行语言矫正:
```java
import nguagetool.JLanguageTool;
public class Main {
public static void main(String[] args) {
JLanguageTool languageTool = new JLanguageTool();
String text = "这是一个测试文本,用于展示如何使用 LanguageTool。
";
String[] argsArray = {"--linelength", "80"};
int n = languageTool.check(text, argsArray);
System.out.println("检查结果:" + n + "个错误");
}
}
```
在上述代码中,我们首先导入了`JLanguageTool`类。
然后,创建了一个`JLanguageTool`对象,并将需要检查的文本传递给`check`方法。
`argsArray`是一个包含参数的数组,在这个例子中,我们指定了最大行长度为80。
最后,我们将检查结果打印出来。
请注意,这只是一个简单的示例,实际使用时可能需要根据具体情况进行调整。
如果你需要更复杂的功能或自定义设置,可以查看`LanguageTool`的官方文档或源代码。
Java IDE编辑器 IntelliJ IDEA 9.0.4 or ideaIU 9.0.4 使用基础篇
Java IDE编辑器IntelliJ IDEA使用基础篇先废话几句,大凡是Java开发者都知道Eclipse集成开发编辑器,也都会使用。
但IntelliJ IDEA呢?!我估计,一部分人没听说过,一部分人知道但没有用过。
所以,我在这里写一篇怎么使用IDEA来建立一个Java Web项目。
废话完毕!以下为图文并茂具体内容:我是首先在D盘下创建一个名叫ideademo的文件夹,准备把项目放在这个目录。
哥们,你也跟着造一个吧!打开你的IDEA编辑器,选择菜单栏的第一个菜单File-->New Project,如下图:然后,就是点击按钮Next>如上图,Project files location选择项目文件的位置,就选择刚建立的文件夹ideademo,给项目起个名字叫ideaProject填到Name所在的选项框里,另外Project file fortmat选项我选的是.ipr(file based)选项。
接着,继续下一步,如图:上面这个图所说的是,建立项目源文件目录为src,没别的继续下一步,如下图:记得在左侧复选框里选上Web Application那个勾,因为要开发Java Web项目是必要的,他会给你生成web.xml文件,右边可以选择JavaEE版本,我选择Version:2.5,点击Finish就完了,剩下的是让项目运行起来了!注意:中途如果要你选择JDK,你就选择一下你的JDK安装目录。
下图是建立后的项目结构图:下一步,设置一下项目的编码吧,免得以后文件内容乱码,全给设置个utf-8编码!在编辑里点击上图菜单栏Build下面那个扳手图标,出现下图:在上图左边的框中输入encoding,然后在右边四个选项中全部选择UTF-8,点击按钮OK设置完成!接着点击编辑器中,菜单栏Run下面那个按钮,如下图:选择左侧的选项为Modules,接着选择右侧Paths选项卡,Compiler output,选择Use module compile output path选项,接着点击选项右边浏览按钮继续设置此选项的地址,如下图:因为IDEA工具默认没有给你新建classes目录,所以你设置的时候,点击WEB-INF目录,再点击的新建按钮新建classes目录,点击OK完成。
Java学习之基于SpringBoot的Java在线编译工具
Java学习之基于SpringBoot的Java在线编译⼯具在Java开发⼯具中,有⼀种是基于Spring Boot的Java在线编译⼯具,下⾯⼩编来给⼤家介绍。
项⽬运⾏流程程序运⾏流程图如下接下来开始具体分析每⼀步的实现⽅法⼀个Java程序是怎样运⾏起来的想要实现在线运⾏Java代码的需求,我们⾸先需要了解Java程序正常的编译和运⾏流程。
⾸先源代码⽂件(.java)经由编译器编译成字节码例如JDK中的javac命令就是实现字节码⽣成技术的程序接下来有Java虚拟机解释并运⾏字节码⽂件,运⾏过程有分为两个步骤类的加载应⽤程序运⾏后,系统会启动⼀个虚拟机进程。
JVM进程在类的加载阶段⾸先会通过⼀个类的全限定类名获取定义此类的⼆进制字节流,然后将这个字节流所代表的静态存储结构转化为⽅法区的运⾏时数据结构,并且在内存中⽣成⼀个代表这个类的ng.Class对象,作为⽅法区这个类的各种数据访问⼊⼝。
类加载的相关的内容⽐较复杂,⽣成对应的Class对象后还会进⾏验证、准备、解析、初始化等⼀系列步骤才算加载完成,但考虑到篇幅问题这⾥就不再展开说明了。
类的执⾏当类加载完成后JVM就可以找到main⽅法执⾏了。
本项⽬中使⽤反射来完成这⼀步骤。
明确了以上步骤后,我们发现有三个问题需要解决:如何编译提交到服务器的Java代码?在本地运⾏Java代码的时候我们可以选⽤Javac命令编译。
对于本项⽬⽽⾔,这种⽅式需要我们先将源代码写⼊⼀个.java⽂件,再编译得到.class⽂件。
但是这样⼀来不仅⾮常耗时,⽽且还会⽣成额外的⽂件,导致服务器环境被污染。
因此我们选择使⽤JDK1.6以后添加的动态编译API来解决这⼀问题。
如何执⾏编译之后的代码?⼀段程序往往不是编写、运⾏⼀次就能达到效果的。
同⼀个类可能需要反复的修改、提交、运⾏。
另外,提交的类也要能访问服务端的其他类库才⾏,对于这⼀问题,需要我们⾃⼰编写类加载器来实现需求。
Java实现在线协作文档编辑
Java实现在线协作⽂档编辑⼤家在⼯作和学习中时常会遇到多⼈编辑⼀个⽂件的情况,⽽多⼈在线协作⽂档编辑器则是⼀个很实⽤、常⽤的⼯具,适合⼩组内的⽂档编辑。
例如可⽤于⼩团队内部进⾏实时编写和收集周报等。
这个项⽬介绍了如何设计实现该功能,使⽤java编写代码,应⽤⾮常流⾏的spring mvc框架,引⼊ckeditor插件,并加⼊localStorage缓存技术,最终利⽤Eclipse完成该实验。
⾮常适合Java 学习者⽤于练⼿。
项⽬涉及知识点:重点掌握 CKEditor重点掌握 LocalStorage 的使⽤了解 Java Web ⽅向的 SpringMVC 框架开发技巧了解 Java Web ⽅向的 Spring JDBCTemplate 开发技巧了解如何在 MySQL 中创建数据、创建表项⽬效果截图:代码开发完成后的效果图,如下:打开应⽤保存⾼清⼤图此处输⼊图⽚的描述实验原理:待实现的功能需求技术调研在线协作编辑实现多⼈在线编辑的功能,可⾃⾏开发web编辑器插件,但是实现成本较⾼,经调研⽬前已经有很多在线编辑器插件可以调⽤,请参考: HTML编辑器-HTML⽹页表单可视化在线编辑器插件⼤全其中,CKEditor(原FCKEditor)是⼀个现成的使⽤旨在简化Web内容创建HTML⽂本编辑器。
是国外⽐较流⾏的⽹页⽂本在线编辑器,早期DEDECMS管理后台发布内容地⽅使⽤此编辑器,这是⼀个所见即所得的编辑器,带来了共同的⽂字处理器的功能,直接到您的⽹页。
最后,因为 CKEditor 免费开源、完全可定制、⾼标准的质量等优点,该课程选择该插件作为前端的输⼊。
实时⾃动保存Web 缓存技术,涉及内容较多。
可参考:Web前后端缓存技术简谈常⽤缓存技术HTML5本地存储 localStorage 、sessionStorage、WebSQL、indexedDB最终,为了兼顾数据保存的简单⾼效和安全,我们选⽤ sessionStorage作为前端存储,因为sessionStorage的优点就是⽅便⾼效;同时为了保证数据的安全不丢失,我们在⽤户确认编写信息⽆误后,通过触发按钮的⽅式将数据提交后台,交由服务器进⾏存储,因为服务器存储数据安全性⾼。
eclipse java程序编译
eclipse java程序编译
在Eclipse中编译Java程序非常简单。
以下是步骤:
1.首先,打开Eclipse IDE。
2.在顶部菜单中,选择"File" -> "New" -> "Java Project"。
在弹出的对话框中,输入你
的项目名称,然后点击"Finish"。
3.在新创建的项目上点击右键,选择"New" -> "Class"。
在弹出的对话框中,输入类名,
并选择要创建的类类型(例如,"public static void main(String[] args)"),然后点击"Finish"。
4.在新创建的类文件中,你可以编写Java代码。
5.当你完成代码编写后,只需点击工具栏上的"Run" 按钮(或按F11键)即可编译并
运行你的程序。
6.如果你的程序有任何编译错误,Eclipse会高亮显示这些错误,并允许你快速定位和
修复它们。
注意:确保你的Java环境已经正确配置,并且Eclipse已经设置为使用正确的JDK版本。
你可以在Eclipse的"Window" -> "Preferences" -> "Java" -> "Installed JREs" 中检查和修改JDK设置。
idea 编译java
idea 编译java
在IntelliJ IDEA中编译Java代码很简单。
以下是一个基本的步骤:
1、启动IntelliJ IDEA。
2、打开你的Java项目或新建一个。
3、在主菜单中,选择 File -> New -> Project,然后选择 Java。
4、如果你已经有一个Java项目,你可以直接打开它。
在项目浏览器中,右键点击你想要编译的Java文件,然后选择 Compile。
5、对于已经编译的Java文件,你可以在项目浏览器中找到它们。
它们通常在 out 目录下。
6、如果你想要调整编译设置,你可以在File -> Settings -> Build, Execution, Deployment -> Compiler 中进行修改。
在这里你可以设置编译的自动编译选项,编译的错误提示等等。
注意:在IDEA中,当你修改了一个文件并保存后,它会自动进行编译,无需手动点击编译按钮。
如果存在编译错误,IDEA会在底部显示红色的波浪线,你可以点击错误提示查看具体的错误信息。
java idea代码
java idea代码Java IDEA代码的介绍与使用指南作为一种流行的编程语言,Java在各行业中广泛应用。
而为了使程序员们更加高效地开发Java程序,开发出了多个IDE(Integrated Development Environment)工具,其中比较受欢迎的IDE之一便是IntelliJ IDEA,因为其功能强大、易于使用。
下面,本文将介绍Java IDEA代码的一些基本用法和技巧。
1. 如何新建Java项目?首先,我们需要打开IntelliJ IDEA。
选择菜单栏中的“File -> New -> Project”,然后选择“Java”并点击“Next”按钮。
在下一步中,我们需要设置项目名称和项目路径。
最后,点击“Finish”按钮即可。
2. 如何新建Java类?在项目中创建一个新类非常简单。
选择菜单栏中的“File -> New -> Java Class”,然后输入类名即可。
在默认情况下,新类将在“src”目录下的“main”文件夹中创建。
3. 如何编写Java代码?在IntelliJ IDEA中,我们可以使用代码编辑器来编写Java代码。
可以选择菜单栏中的“File -> New -> Java Class”并输入类名,然后在代码区域开始编写代码。
4. 如何编写Java注释?Java注释是用于解释代码的文本,有助于使代码更加易于理解。
在IntelliJ IDEA中,我们可以输入双斜杠“//”来开始编写单行注释,或者输入“/*”和“*/”之间编写多行注释。
5. 如何编译Java代码?在IntelliJ IDEA中,我们可以通过选择菜单栏中的“Build -> Make Project”来编译整个项目。
我们也可以选择单个类并使用“Build -> Compile ‘ClassName’”选项来编译单个类。
6. 如何运行Java代码?IntelliJ IDEA提供了多种运行Java代码的方式。
Java网络编程---分布式文件协同编辑器设计与实现
Java⽹络编程---分布式⽂件协同编辑器设计与实现⽬录:第⼀部分:Java⽹络编程知识(⼀)简单的Http请求 ⼀般浏览⽹页时,使⽤的时Ip地址,⽽IP(Internet Protocol,互联⽹协议)⽬前主要是IPv4和IPv6. IP地址是⼀个32位整数,⼀般分成4个⼋位⼆进制,为了⽅便记忆⼀般将⼋位整数换算为⼀个0-255的⼗进制整数。
InetAddressTest 利⽤Http的这些知识就可以实现⼀个多线程下载器,以及爬⾍的基础向web站点发送GET/POST请求: (1)⼀个简单的多线程下载器1import .*;2import java.io.RandomAccessFile;3import java.io.InputStream;4public class DownUtil5 {6//下载路径7private String path;8//指定下载⽂件存储的位置9private String targetFile;10//定义使⽤多少线程下载11private int threadNum;12//定义下载线程对象13private DownThread[] threads;14//定义下载⽂件的总⼤⼩15private int fileSize;1617public DownUtil(String path,String target,int threadNum)18 {19this.path = path;20this.targetFile=target;21this.threadNum=threadNum;22//初始化threads数组23 threads=new DownThread[threadNum];24 }25public void download() throws Exception26 {27 URL url = new URL(path);28 HttpURLConnection conn = (HttpURLConnection) url.openConnection();29 conn.setConnectTimeout(5*1000);30 conn.setRequestMethod("GET");31 conn.setRequestProperty(32 "Accept",33 "image/gift,image/jpeg,image/pjpeg,image/pjpeg"34 +"application/x-shockwave-flash,application/xaml+xml"35 +"application/vnd.ms-xpsdocument,application/x-ms-xbap"36 +"application/x-ms-application,application/vnd.ms-excel"37 +"application/vnd.ms-powerpoint,application/msword,*/*"38 );39 conn.setRequestProperty("Accept-Language","zh-CN");40 conn.setRequestProperty("Charset","UTF-8");41 conn.setRequestProperty("Connection","Keep-Alive");42//获得⽂件⼤⼩43 fileSize = conn.getContentLength();44 conn.disconnect();45int currentPartSize=fileSize/threadNum+1;46 RandomAccessFile file = new RandomAccessFile(targetFile,"rw");47//设置本地⽂件⼤⼩48 file.setLength(fileSize);49 file.close();50for(int i=0;i<threadNum;i++)51 {52//计算每个线程开始的位置53int startPos = i*currentPartSize;54//每个线程使⽤⼀个RandomAccessFile下载55 RandomAccessFile currentPart=new RandomAccessFile(targetFile,"rw");56//定位线程下载的位置57 currentPart.seek(startPos);58//创建下载线程61 threads[i].start();62 }63 }64//获取下载的完成⽐65public double getCompleteRate()66 {67//统计多个线程已经下载的总⼤⼩68int sumSize=0;69for(int i=0;i<threadNum;i++)70 {71 sumSize+=threads[i].length;72 }73return sumSize*1.0/fileSize;74 }75private class DownThread extends Thread76 {77//当前的下载位置78private int startPos;79//当前线程负责下载的⽂件的⼤⼩80private int currentPartSize;81//当前线程需要下载⽂件块82private RandomAccessFile currentPart;83//定义该现场当前已经下载的字节数84public int length;85public DownThread(int startPos,int currentPartSize,RandomAccessFile currentPart) 86 {87this.startPos=startPos;88this.currentPartSize=currentPartSize;89this.currentPart=currentPart;90 }91public void run()92 {93try94 {95 URL url = new URL(path);96 HttpURLConnection conn = (HttpURLConnection) url.openConnection();97 conn.setConnectTimeout(5*1000);98 conn.setRequestMethod("GET");99 conn.setRequestProperty(100 "Accept",101 "image/gift,image/jpeg,image/pjpeg,image/pjpeg"102 +"application/x-shockwave-flash,application/xaml+xml"103 +"application/vnd.ms-xpsdocument,application/x-ms-xbap"104 +"application/x-ms-application,application/vnd.ms-excel"105 +"application/vnd.ms-powerpoint,application/msword,*/*"106 );107 conn.setRequestProperty("Accept-Language","zh-CN");108 conn.setRequestProperty("Charset","UTF-8");109 InputStream inStream=conn.getInputStream();110//跳过startPos个字节,只下载⾃⼰负责的那部分⽂件111 inStream.skip(this.startPos);112byte[] buffer=new byte[1024];113int hasRead=0;114//读取⽹络数据,并写⼊⽂件115while(length<currentPartSize && (hasRead=inStream.read(buffer))!=-1)116 {117 currentPart.write(buffer,0,hasRead);118 length+=hasRead;119 }120 currentPart.close();121 inStream.close();122 }123catch (Exception e)124 {125 e.printStackTrace();126 }127 }128 }129 }View Code (2)发⽣GET/POST请求1import .URLConnection;2import .URL;3import java.util.Map;4import java.util.List;5import java.io.BufferedReader;6import java.io.InputStreamReader;7import java.io.PrintWriter;10/**11 *想指定URL发送GET请求12 *@param url 发送请求的URL13 *@param param 请求参数,格式满⾜key=value&key2=value2的形式14 *@return URL 代表远程资源的响应15*/16public static String sendGet(String url,String param)17 {18 String result = "";19 String urlName=url+"?"+param;20try21 {22 URL realUrl=new URL(urlName);23//打开和URL之间的连接24 URLConnection conn=realUrl.openConnection();25//设置通⽤的请求属性26 conn.setRequestProperty("accept","*/*");27 conn.setRequestProperty("connection","Keep-Alive");28 conn.setRequestProperty("user-agent","Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2906.0 Safari/537.36"); 29//建⽴实际链接30 conn.connect();31 Map<String,List<String>> map =conn.getHeaderFields();32//遍历所有相应头字段33for(String key:map.keySet())34 {35 System.out.println(key+"---->"+map.get(key));36 }37try(38//定义BufferedReader输⼊流来读取URL响应39 BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream(),"utf-8")))40 {41 String line;42while((line=in.readLine())!=null)43 {44 result+="\n"+line;45 }46 }47 }48catch (Exception e)49 {50 System.out.println("发送GET请求出现异常!"+e);51 e.printStackTrace();52 }53return result;54 }55/**56 *想指定URL发送POST请求57 *@param url 发送请求的URL58 *@param param 请求参数,格式满⾜key=value&key2=value2的形式59 *@return URL 代表远程资源的响应60*/61public static String sendPost(String url,String param)62 {63 String result="";64try65 {66 URL realUrl=new URL(url);67//打开和URL之间的连接68 URLConnection conn=realUrl.openConnection();69//设置通⽤的请求属性70 conn.setRequestProperty("accept","*/*");71 conn.setRequestProperty("connection","Keep-Alive");72 conn.setRequestProperty("user-agent","Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2906.0 Safari/537.36");73 conn.setDoOutput(true);74 conn.setDoInput(true);75try(76//获取URLConnection对象对应的输出流77 PrintWriter out =new PrintWriter(conn.getOutputStream()) )78 {79//发送请求参数80 out.print(param);81//flush输出流的缓冲82 out.flush();83 }84try(85//定义BufferedReader输⼊流来读取URL响应86 BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream(),"utf-8")))87 {88 String line;89while((line=in.readLine())!=null)90 {91 result+="\n"+line;92 }95catch (Exception e)96 {97 System.out.println("发送POST请求出现异常!"+e);98 e.printStackTrace();99 }100return result;101 }102public static void main(String[] args)103 {104//String s =GetPostTest.sendGet("https://",null);105//System.out.println(s);106 String s1=GetPostTest.sendPost("/","user=1245532105&pwd=095493");107 String s2 =GetPostTest.sendGet("/index.portal",null);108 System.out.println(s1);109 }110 }View Code(⼆)基于TCP协议的⽹络编程(使⽤Socket进⾏通信) TCP协议⼀般是和IP协议⼀起使⽤的,TCP/IP协议属于⼀种可靠的⽹络协议,它可以在通信的两端各建⽴⼀个Socket,使得两端形成⼀个虚拟的⽹络链路。
如何使用Java进行程序开发
如何使用Java进行程序开发Java作为一种广泛使用的编程语言,被广泛应用于各种软件开发领域。
在这篇文章中,我们将讨论如何使用Java进行程序开发。
我们将从语言特性、开发环境、调试技巧和最佳实践等方面进行探讨。
首先,Java是一种面向对象的编程语言,它的语法相对简单易懂。
使用Java进行程序开发,我们首先需要了解Java的基本语法规则,例如声明变量、定义类、方法和实现继承等。
此外,Java还提供了大量的标准库,方便我们进行各种操作,例如文件读写、网络通信和数据库访问等。
其次,为了编写Java程序,我们需要选择一个合适的开发环境。
目前,Java的主要开发环境有Eclipse、IntelliJ IDEA和NetBeans等。
这些开发环境提供了一系列强大的功能,例如代码自动补全、调试工具和版本控制等。
它们使得我们的开发工作更加高效和便捷。
在编写Java程序的过程中,我们难免会遇到各种错误和异常。
为了快速解决这些问题,调试技巧是至关重要的。
我们可以使用断点调试功能,逐行执行程序并观察变量的值,从而找出程序的错误所在。
此外,利用日志功能记录程序运行过程中的信息,有助于我们更好地理解和分析程序的执行流程。
除了掌握基本的开发工具和调试技巧,了解一些最佳实践也能够提高我们的开发效率和代码质量。
首先,良好的代码风格是非常重要的,它可以使我们的代码更易读、易维护。
遵循Java编码规范,使用有意义的变量名和注释,尽量避免使用魔法数字和硬编码等,都是良好的编码习惯。
其次,单元测试是保证代码质量的有效手段。
编写测试用例可以帮助我们发现潜在的问题,并确保代码在修改或重构后依然正确运行。
最后,版本控制工具是团队协作开发的重要工具。
使用版本控制工具,我们可以跟踪代码的变更历史,方便项目管理和团队合作。
除了基础知识和技能,持续学习和不断提升也是使用Java进行程序开发的关键。
Java是一个庞大而不断发展的生态系统,它的标准库和框架不断更新,新的语言特性和技术也不断涌现。
如何编译github java源代码
编译GitHub上的Java源代码是一项重要的技能,它有助于开发人员理解开源项目的工作原理,并进行定制化开发。
下面,我们将介绍如何使用常见的工具和技术来编译GitHub上的Java源代码。
一、下载源代码1. 在GitHub上搜索并找到你感兴趣的Java开源项目。
2. 点击项目页面上的“Clone or download”按钮,复制项目的Git 仓库URL。
3. 在本地的命令行界面中,使用git clone命令将项目克隆到本地。
二、配置开发环境1. 确保你的开发环境中已经安装了Java Development Kit(JDK),并配置了JAVA_HOME环境变量。
2. 如果项目使用了Maven或Gradle等构建工具,你需要在本地安装相应的工具,并配置好对应的环境变量。
三、使用Maven编译Java源代码1. 打开命令行界面,进入到项目的根目录。
2. 执行mvn clean install命令,Maven将会下载依赖、编译源代码并打包项目。
四、使用Gradle编译Java源代码1. 打开命令行界面,进入到项目的根目录。
2. 执行gradle build命令,Gradle将会下载依赖、编译源代码并打包项目。
五、使用Ant编译Java源代码1. 确保你已经安装了Ant,并配置了ANT_HOME环境变量。
2. 在项目根目录的命令行界面中,执行ant命令,Ant将会根据build.xml文件编译源代码。
六、使用集成开发环境(IDE)编译Java源代码1. 打开你喜欢的IDE,比如IntelliJ IDEA、Eclipse等。
2. 导入项目,IDE将会自动下载依赖并编译源代码。
七、其他注意事项1. 在编译过程中可能会遇到依赖缺失、版本不兼容等问题,需要仔细阅读项目的文档和日志,进行相应的调整。
2. 如果项目包含单元测试,你可能需要在编译之前执行测试,并确保所有测试用例通过。
3. 如果你对源代码进行了修改,可以使用相同的步骤来编译并测试你的修改。
java源码编译
java源码编译Java源码编译是将Java代码转换为字节码的过程。
Java字节码是一种中间形式,它可以跨平台地运行在任何支持Java虚拟机(JVM)的计算机上。
Java源码可以使用命令行,集成开发环境(IDE)或构建工具进行编译。
下面是一些关于Java源码编译的指南:1.准备Java开发环境在编译Java源码之前,需要准备好Java开发环境。
Java开发环境包括Java Development Kit(JDK)和Java运行时环境(JRE)。
JDK提供了Java开发所需要的工具,包括Java编译器、Java文档生成器、调试器等等。
JRE包含Java虚拟机和Java类库等组件,是运行Java程序所必需的。
使用文本编辑器(如Notepad++、Sublime Text等)或集成开发环境(如Eclipse、NetBeans、IntelliJ IDEA等)创建Java源代码。
Java源代码必须以“.java”为扩展名,包含类、方法、变量等语法元素。
例如,以下是一个简单的Java类:编译Java源代码需要使用Java编译器。
Java编译器可以从命令行或集成开发环境中调用。
使用命令行编译Java源代码的命令为“javac”,命令格式如下:```javac [options] [source files]```其中,[options]是可选的编译选项,[source files]是要编译的Java源代码文件。
例如,以下命令可以编译上述的HelloWorld类:```javac HelloWorld.java```编译后会生成一个名为“HelloWorld.class”的字节码文件,该文件包含了相应源代码的Java字节码。
可以使用以下命令运行生成的字节码文件:4.优化编译过程Java编译器提供了一些编译选项,可以优化编译过程。
其中,最常用的选项为“-O”(优化)和“-g”(生成调试信息)。
5.使用构建工具使用构建工具可以更加方便地管理和构建Java项目。
编辑器使用Java语言和JavaFX开发的小程序
编辑器使用Java语言和JavaFX开发的小程序随着计算机技术的不断发展,各种各样的应用程序层出不穷。
其中,编辑器是一类非常重要的应用程序,它可以方便地编辑文本、代码等内容。
本文将介绍使用Java语言和JavaFX开发的小程序,该程序旨在提供一个功能强大、易于使用的编辑器。
1. 程序概述该小程序基于Java语言和JavaFX开发,旨在为用户提供一个强大的文本编辑器。
它具有以下主要特点:1.1 支持多种文件类型该编辑器可以处理多种文件类型,包括普通文本文件、代码文件等。
用户可以根据自己的需要选择不同的文件类型,并获得相应的编辑功能。
1.2 语法高亮为了方便用户编写代码,该编辑器实现了语法高亮功能。
它可以根据不同的编程语言,对代码进行高亮显示,使代码结构更加清晰,易于阅读和修改。
1.3 智能代码补全为了提高用户的编程效率,该编辑器还实现了智能代码补全功能。
当用户输入代码时,编辑器可以自动弹出建议,并提供相关的代码片段,减少用户的输入量,提高编程效率。
1.4 代码格式化为了保持代码的规范和一致性,该编辑器提供了代码格式化功能。
用户可以通过点击按钮或使用快捷键,对代码进行格式化,使代码的缩进、空格等方面符合编码规范。
1.5 文件管理除了编辑功能,该编辑器还提供了文件管理功能。
用户可以通过编辑器直接打开、保存和关闭文件,还可以创建、删除和重命名文件。
这样,用户可以方便地管理自己的文档和代码文件。
2. 开发环境该小程序使用Java语言和JavaFX框架进行开发。
Java是一种跨平台的编程语言,可在不同的操作系统上运行。
JavaFX是一种用于构建富客户端应用程序的Java库,可以创建漂亮的用户界面。
为了开发该程序,你需要安装Java开发工具包(JDK)和JavaFX 库。
在准备好开发环境后,你可以使用Java编程语言和JavaFX的相关API来编写程序代码。
3. 实现过程3.1 创建界面首先,我们需要创建一个用户界面,用于展示编辑器的各个功能。
vscode编写java代码
vscode编写java代码
编写Java代码在VSCode中可以使用插件"Java Extension Pack"来实现。
安装这个插件后,VSCode就可以支持Java的语法高亮、代码自动完成、调试、编译和运行等功能。
具体步骤如下:
1.安装"Java Extension Pack" 插件
2.配置Java的环境变量
3.创建一个Java项目
4.编写Java代码
5.编译和运行Java代码
在VSCode中,你可以使用快捷键来编译和运行Java 代码,也可以通过点击菜单栏上的按钮来实现。
此外,你还可以使用VSCode自带的调试功能来调试你的Java代码。
总之, VSCode 是一个功能强大的代码编辑器,通过安装插件可以支持Java的开发,并提供了良好的开发体验。
使用VSCode编写Java代码,可以帮助你更快地编写、调试和运行代码,提高开发效率。
需要注意的是,在使用VSCode编写Java代码之前,你需要先安装Java Development Kit (JDK),并配置好Java的环境变量。
这样才能保证VSCode能够正常识
别和使用Java环境。
最后, 你还可以通过安装相关插件来提高VSCode的Java开发能力, 例如: 代码格式化, 代码重构,代码检测等.。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
代码编辑器的java实现
摘要
如果我们把不同的程序开发人员比作三国演义中的各路诸侯大将的话,那么代码编辑器绝对可以称之我们手中的神兵利器。
对于每个程序猿来说,内心的深处都想有一把自己的“青龙偃月刀”和属于自己的一个代码编辑器。
我也有这个想法,我也想自己写一个代码编辑器来满足我的内心深处。
所以这次java的课程作业我选择了这个题目!
关键词:Java;代码编辑器;关键字变色;编译和运行
前言
通过一学期的Java学习,我对Java的理论知识有了一些了解。
但是,只有理论联系实际才能更好的掌握理论,所以这次Java课程设计我选择了Java程序编辑器这个课题,希望可以锻炼自己的动手能力。
我上交给老师您的代码是我参考的网上的一个牛人写的代码,并在他的代码上进行了功能的增加,至于我增加了多少功能,我会论文的附录中给出详细的对比。
1. 软件的定义
编写一个界面像Windows系统的记事本的代码编辑器,功能比记事本更强大(针对某一方面)具备以下功能:
(1)打开、保存文件功能;
(2)能够识别Java中的关键字并能将关键字以高亮的形式显示出来;
(3)能够批量的删除代码中的注释;
(4)能通过按下按钮调用DOS窗口;
(5)能编译和运行Java程序;
(6)能够检查括号是否匹配。
2.开发环境
IDE: eclipse
JDK: jdk-7u45-windows-x64
OS:Windows 7 —X64
3.代码的详细说明
主界面:
syntaxcolor.v4包中的DemoFrame.java文件,主界面就是一个Frame,然后在上面加上一个菜单栏,一个工具栏和两个Panel,一个panel里面放着JTextPane,另一个里面放着一个几个JLable,用来显示当前鼠标是在第几行,第几列,该Panel放在Frame最下
面。
菜单栏:
总共有3个JMenu,一个是文件,一个是编辑,一个是帮助。
3个菜单里面各有下拉菜单。
文件JMenu有2个JMenuItem分别为openMenuItem、ExitMenuItem,编辑JMenu有2个JMenuItem分别为cutMentItem、pasteMEnuItem,帮助JMenu有一个JMenuItem是aboutMenuItem用来显示代码编辑器的相关的信息。
工具栏:
从左到右分别为打开文件、新建文件,保存、批量去除注释、调用DOS 窗口、编译执行和运行Java程序、括号的匹配。
下面详细的介绍每个工具栏
的按钮
打开文件按钮:
此时选择打开窗口可以看到的Test.java程序。
代码的实现:
创建一个BufferedReader 类型的br来读取从打开文件的对话框中选择的文件,读取到Panel1中的jTextPane中。
新建文件按钮:
说明:如果JTextPane中有字符的话(即代码编辑区有字),先让用户保存,再新建一个新的JTextPane(但是我在实现的时候遇到了问题了,网上的文本编辑器大部分是用JTextArea来实现的,而不是JTextpane来实现的,在JTextPane中没有JTextArea里面的对应的方法,而且我在网上没有找到了好的解决方案,所以我的做法是把按下新建按钮后把当前JTextPane的清空。
保存按钮:
代码的实现
定义一个BufferedWriter类型的bw和FileWriter类型的fw通过bw把字符写到fw对应的文件中去。
对应代码中的fileSava()函数和fileSavaAs ()函数。
批量去除注释
代码的实现:
是通过将当前的文件保存到默认的路径中去,先将代码中的注释去除,通过将去除到注释的代码保存当前文件的系统目录下,再用打开文件操作来把去除注释的代码重新读入JTextPane中去。
在文件的保存路径下,会产生一个“文件名”+“.bak”的文件(该文件为没有注释的文件),这样可以用来批量的删除注释,并保存在对应文件名的.bak文件中
DOS窗口的调用
通过组合使用Java提供的Runtime类和Process类的方法实现在java 中调用DOS命令,因为我自己在编写java的代码的时候,写好了要按win+R 按键时还要出入cmd命令,我感觉特别的繁琐,于是我写了这个功能,通过一个按钮就能调用出DOS窗口,方便了用户的使用。
对应于compile.java文件。
编译和运行
对于刚写的代码要进行编译和运行的,我的策略是通过先对文件进行保存,就在这个时候来获取到保存文件的路径以及文件名等信息。
然后就是通过通过组合使用Java提供的Runtime类和Process类的方法实现在java中调用DOS命令javac —文件名,编译成功后就会自动的运行,会弹出一个Frame来显示指定的屏幕输出,其实这个的实现是通过用户本地的JDK来实现的,弹出的Frame是把DOS窗口的内容读入进去在显示出来!
括号的匹配
我们在写代码的时候经常会出现多一个多括号少一个括号,有时候编译器可能会给出一条我们不认识的错误,这个时候我们会花费大量的时间来检查错误,所以我就想我的代码编辑器中要有这个功能。
在代码的实现上是通过定义一个栈将是括号的左边加入栈,如果扫描到括号的右面就把对应的括号出栈,到最后如果栈空,则总个括号匹配成功,如果栈不空则括号匹配不成功,并用红色将其标出。
课程设计总结
本次课程设计,让我获益匪浅,不仅更深入的了解Java这门学科,更使自己有了继续探索的兴趣。
对于个人而言,在程序设计的过程中,我深感“认真严谨”这个词的重要性,一点点小的马虎,便会导致整个程序不能正常运行。
在今后的学习中,我定将“认真严谨时刻作为自的谨言。
与此同时,本小组成员的互帮互助,让我体会到了团结的力量,而更让人难以忘怀的是在热烈讨论问题时,那激情横溢的场面。
总之,此次课程设计在我的学生生涯中启上了至关重要的作用。
最后,真诚的感谢汪世元和我们机器人实验室的学长和学姐们的帮助。
选题的时候,我一开始也不知道要写什么好,想了好久后决定做一个代码编辑器,因为我们平常我们在用代码编辑器的时候,经常觉得代码的编辑器没有按照自己的习惯,觉得很变扭,再给加上觉得能做出一个代码编辑器很牛,也想在自己的大学里面能做出一个拿的出手的小程序,在同学们之间能炫耀一下,在网上也看到很多网友做了很多不错的小程序,然后放到自己的
博客空间上,然后会有很多人在下面评价说,楼主好牛!为了满足我自己的小的虚荣心,我就选择了一个比较难的(我个人认为的)的代码编辑器。
在编写代码编辑器的过程中,我学到了很多东西,由于这部分老师上课讲的不多,只能靠自己的从网上一点一点的自学,一开始遇到了很多困难,很多东西都看不懂,而且也没有人跟你讲。
我有一段时间萌发了换个简单点的题目,但是后来想做一个在同学中拿的出手的小程序,于是我克服了困难。
下面我来讲下我在编写程序时遇到的问题,开始我上网看了很多文本编辑器,它们大部分是用jTextArea来实现的,而且它们都没有实现关键字的变色,后来为了实现关键字变色的这个难题,我上网找了很久,就找到了一个人用java实现了,他使用的是JTextPane并非我们在网上常见的jTextArea,后来查阅了很多资料后才得知jTextArea是什么没有实现关键字变色的(在JtextArea中没有办法实现一部分字体以特殊的颜色显示出来),后来我就采用了JTextPane。
就在我采用了JTextPane继续往下写的时候遇到了困难第一个困难是我JTextPane没有提供像JTextArea中获取行号和列号的对应函数。
为了显示行号与列号,我又上网查资料,自己写了getRow()和getColumn ()函数来返回当前光标对应的行数和列数。
我的这个小程序在对文字的处理方面可能很不如很多的网上可以搜索到的文本编辑器,因为代码是我一个人写的,在加上期末考试的临近,时间越来越紧张,在加网上对JTextPane 的资料少于JTextArea的,所以在这个地方我做的不是很好。
为了实现主要的功能我放弃了对一些常规的记事本的替换等操作。
我想了一下如果一个代码编辑器不能编辑那怎么能叫代码编辑器,后来我想到可以利用本机的JDK 来做一个假的编译器,上面有编译和运行的按钮,但在实现是利用用户自己的本机安装JDK来编译源代码。
由于我个人的水平有限和时间有限,代码中肯定会有一些bug。
我会在后来的时间中将它修改好。
版权说明
交给老师的代码是依靠网上的一个人的代码为蓝本,也就是我的代码编辑器中关于关键字的变色的代码是从网上下的,我是在他的基础上进行了功能的增加,网上代码的下载地址为:
/raphaelxia/article/details/597465和
/cwbwebhome/article/article8/83461.html?id=4 386
网上的代码只有一个简单的变色功能,至于能编译和运行,显示行、列号,批量删除注释,调用DOS窗口,括号的匹配功能都是我自己实现的,下面给出图片对比
这个是网上下的代码的运行情况。