java在线代码编辑器网页版java在线编译运行编辑器

StyledDocument.setCharacterAttributes(intoffset,intlength,AttributeSets,booleanreplace)

三.文本编辑器选择.

Java中提供的多行文本编辑器有:JTextComponent,JTextArea,JTextPane,JEditorPane等,都可以使用.但是因为语法着色中文本要使用多种风格的样式,所以这些文本编辑器的document要使用StyledDocument.

JTextArea使用的是PlainDocument,此document不能进行多种格式的着色.

JTextPane,JEditorPane使用的是StyledDocument,默认就可以使用.

为了实现语法着色,可以继承自DefaultStyledDocument,设置其为这些文本编辑器的documet,或者也可以直接使用JTextPane,JEditorPane来做.为了方便,这里就直接使用JTextPane了.

四.何时进行着色.

当文本编辑器中有字符被插入或者删除时,文本的内容就发生了变化,这时检查,进行着色.

为了监视到文本的内容发生了变化,要给document添加一个DocumentListener监听器,在他的removeUpdate和insertUpdate中进行着色处理.

而changedUpdate方法在文本的属性例如前景色,背景色,字体等风格改变时才会被调用.

@Override

publicvoidchangedUpdate(DocumentEvente){

}

publicvoidinsertUpdate(DocumentEvente){

try{

colouring((StyledDocument)e.getDocument(),e.getOffset(),e.getLength());

}catch(BadLocationExceptione1){

e1.printStackTrace();

publicvoidremoveUpdate(DocumentEvente){

//因为删除后光标紧接着影响的单词两边,所以长度就不需要了

colouring((StyledDocument)e.getDocument(),e.getOffset(),0);

五.着色范围:

pos:指变化前光标的位置.

len:指变化的字符数.

例如有关键字public,int

单词"publicint",在"public"和"int"中插入一个空格后变成"publicint",一个单词变成了两个,这时对"public"和"int"进行着色.

着色范围是public中p的位置和int中t的位置加1,即是pos前面单词开始的下标和pos+len开始单词结束的下标.所以上例中要着色的范围是"publicint".

提供了方法indexOfWordStart来取得pos前单词开始的下标,方法indexOfWordEnd来取得pos后单词结束的下标.

publicintindexOfWordStart(Documentdoc,intpos)throwsBadLocationException{

//从pos开始向前找到第一个非单词字符.

for(;pos0isWordCharacter(doc,pos-1);--pos);

returnpos;

publicintindexOfWordEnd(Documentdoc,intpos)throwsBadLocationException{

for(;isWordCharacter(doc,pos);++pos);

一个字符是单词的有效字符:是字母,数字,下划线.

publicbooleanisWordCharacter(Documentdoc,intpos)throwsBadLocationException{

charch=getCharAt(doc,pos);//取得在文档中pos位置处的字符

if(Character.isLetter(ch)||Character.isDigit(ch)||ch=='_'){returntrue;}

returnfalse;

所以着色的范围是[start,end]:

intstart=indexOfWordStart(doc,pos);

intend=indexOfWordEnd(doc,pos+len);

六.关键字着色.

从着色范围的开始下标起进行判断,如果是以字母开或者下划线开头,则说明是单词,那么先取得这个单词,如果这个单词是关键字,就进行关键字着色,如果不是,就进行普通的着色.着色完这个单词后,继续后面的着色处理.已经着色过的字符,就不再进行着色了.

publicvoidcolouring(StyledDocumentdoc,intpos,intlen)throwsBadLocationException{

//取得插入或者删除后影响到的单词.

//例如"public"在b后插入一个空格,就变成了:"public",这时就有两个单词要处理:"pub"和"lic"

//这时要取得的范围是pub中p前面的位置和lic中c后面的位置

charch;

while(startend){

ch=getCharAt(doc,start);

if(Character.isLetter(ch)||ch=='_'){

//如果是以字母或者下划线开头,说明是单词

//pos为处理后的最后一个下标

start=colouringWord(doc,start);

}else{

//SwingUtilities.invokeLater(newColouringTask(doc,pos,wordEnd-pos,normalStyle));

++start;

publicintcolouringWord(StyledDocumentdoc,intpos)throwsBadLocationException{

intwordEnd=indexOfWordEnd(doc,pos);

Stringword=doc.getText(pos,wordEnd-pos);//要进行着色的单词

if(keywords.contains(word)){

//如果是关键字,就进行关键字的着色,否则使用普通的着色.

//这里有一点要注意,在insertUpdate和removeUpdate的方法调用的过程中,不能修改doc的属性.

//但我们又要达到能够修改doc的属性,所以把此任务放到这个方法的外面去执行.

//实现这一目的,可以使用新线程,但放到swing的事件队列里去处理更轻便一点.

SwingUtilities.invokeLater(newColouringTask(doc,pos,wordEnd-pos,keywordStyle));

SwingUtilities.invokeLater(newColouringTask(doc,pos,wordEnd-pos,normalStyle));

returnwordEnd;

因为在insertUpdate和removeUpdate方法中不能修改document的属性,所以着色的任务放到这两个方法外面,所以使用了SwingUtilities.invokeLater来实现.

privateclassColouringTaskimplementsRunnable{

privateStyledDocumentdoc;

privateStylestyle;

privateintpos;

privateintlen;

publicColouringTask(StyledDocumentdoc,intpos,intlen,Stylestyle){

this.doc=doc;

this.pos=pos;

this.len=len;

this.style=style;

publicvoidrun(){

//这里就是对字符进行着色

doc.setCharacterAttributes(pos,len,style,true);

}catch(Exceptione){}

七:源码

关键字着色的完成代码如下,可以直接编译运行.对于数字,运算符,字符串等的着色处理在以后的教程中会继续进行详解.

importjava.awt.Color;

importjava.util.HashSet;

importjava.util.Set;

importjavax.swing.JFrame;

importjavax.swing.JTextPane;

importjavax.swing.SwingUtilities;

importjavax.swing.event.DocumentEvent;

importjavax.swing.event.DocumentListener;

importjavax.swing.text.BadLocationException;

importjavax.swing.text.Document;

importjavax.swing.text.Style;

importjavax.swing.text.StyleConstants;

importjavax.swing.text.StyledDocument;

publicclassHighlightKeywordsDemo{

publicstaticvoidmain(String[]args){

JFrameframe=newJFrame();

JTextPaneeditor=newJTextPane();

editor.getDocument().addDocumentListener(newSyntaxHighlighter(editor));

frame.getContentPane().add(editor);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setSize(500,500);

frame.setVisible(true);

/**

*当文本输入区的有字符插入或者删除时,进行高亮.

*

*要进行语法高亮,文本输入组件的document要是styleddocument才行.所以不要用JTextArea.可以使用JTextPane.

*@authorBiao

*/

classSyntaxHighlighterimplementsDocumentListener{

privateSetStringkeywords;

privateStylekeywordStyle;

privateStylenormalStyle;

publicSyntaxHighlighter(JTextPaneeditor){

//准备着色使用的样式

keywordStyle=((StyledDocument)editor.getDocument()).addStyle("Keyword_Style",null);

normalStyle=((StyledDocument)editor.getDocument()).addStyle("Keyword_Style",null);

StyleConstants.setForeground(keywordStyle,Color.RED);

StyleConstants.setForeground(normalStyle,Color.BLACK);

//准备关键字

keywords=newHashSetString();

keywords.add("public");

keywords.add("protected");

keywords.add("private");

keywords.add("_int9");

keywords.add("float");

keywords.add("double");

SwingUtilities.invokeLater(newColouringTask(doc,start,1,normalStyle));

*对单词进行着色,并返回单词结束的下标.

*@paramdoc

*@parampos

*@return

*@throwsBadLocationException

Stringword=doc.getText(pos,wordEnd-pos);

*取得在文档中下标在pos处的字符.

*如果pos为doc.getLength(),返回的是一个文档的结束符,不会抛出异常.如果pos0,则会抛出异常.

*所以pos的有效值是[0,doc.getLength()]

publicchargetCharAt(Documentdoc,intpos)throwsBadLocationException{

returndoc.getText(pos,1).charAt(0);

*取得下标为pos时,它所在的单词开始的下标.±wor^d±(^表示pos,±表示开始或结束的下标)

*取得下标为pos时,它所在的单词结束的下标.±wor^d±(^表示pos,±表示开始或结束的下标)

*如果一个字符是字母,数字,下划线,则返回true.

charch=getCharAt(doc,pos);

*完成着色任务

一、EditplusEditPlus是功能很全面的文本、HTML、程序源代码编辑器。

默认的支持HTML、ASP、Perl、C/C++、CSS、PHP、Java、java和VB的语法着色。

通过定制语法文件还可以扩展到其他程序语言。

可以在Tools菜单的ConfigureUserTools菜单项配置用户工具,类似于UltraEdit的配置,配置好Java的编译器Javac和解释器Java后,通过EditPlus的菜单可以直接编译执行Java程序。

二、UltraEdit初学者一般用什么开发工具UltraEdit是一个功能强大的文本、HTML、程序源代码编辑器。

作为源代码编辑器,它的默认配置可以对C/C++,VB,HTML,Java和Perl进行语法着色。

用它设计Java程序时,可以对Java的关键词进行识别并着色,方便了Java程序设计。

它具有完备的复制、粘贴、剪切、查找、替换、格式控制等编辑功能。

可以在Advanced菜单的ToolConfiguration菜单项配置好Java的编译器Javac和解释器Java,直接编译运行Java程序。

三、Eclipse初学者一般用什么开发工具Eclipse是一个开放可扩展的集成开发环境(IDE)。

它不仅可以用于Java的开发,通过开发插件,它可以构建其他的开发工具。

Eclipse是开放源代码的项目,并可以免费下载。

建议使用Releases或StableBuilds版本。

四、JcreatorJcreator是一个用于Java程序设计的集成开发环境,具有编辑、调试、运行Java程序的功能。

这个软件比较小巧,对硬件要求不是很高,完全用C++写的,速度快、效率高。

java课程认为具有语法着色、代码参数提示、工程向导、代码自动完成、类向导等功能。

先进次启动时提示设置JavaJDK主目录及JDKJavaDoc目录,软件自动设置好类路径、编译器及解释器路径,还可以在帮助菜单中使用JDKHelp。

但目前这个版本对中文支持性不好。

1、SublimeText

SublimeText是一个代码编辑器也是HTML和散文先进的文本编辑器。漂亮的用户界面和非凡的功能,例如迷你地图,多选择,Python的插件,代码段,等等。完全可自定义键绑定,菜单和工具栏。SublimeText的主要功能包括:拼写检查,书签,完整的PythonAPI,Goto功能,即时项目切换,多选择,多窗口等等。

2、Dreamweaver

AdobeDreamweaver使用所见即所得的接口,亦有HTML(标准通用标记语言下的一个应用)编辑的功能,借助经过简化的智能编码引擎,轻松地创建、编码和管理动态网站。访问代码提示,即可快速了解HTML、CSS和其他Web标准。使用视觉辅助功能减少错误并提高网站开发速度。

3、VisualStudioCode

VisualStudioCode中文版是微软推出的带GUI的代码编辑器,软件功能非常强大,界面简洁明晰、操作方便快捷,设计得很人性化。软件主要改进了文档视图,完善了对Markdown的支持,新增PHP语法高亮。

4、HBuilder

HBuilder是专为前端打造的开发工具,具有飞一样的编码、最全的语法库和浏览器兼容数据、可以方便的制作手机APP、最保护眼睛的绿柔设计等特点。支持HTML、CSS、JS、PHP的快速开发。从开放注册以来深受广大前端朋友们的喜爱。

5、WebStorm

WebStorm是jetbrains公司旗下一款JavaScript开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScriptIDE”等。与IntelliJIDEA同源,继承了IntelliJIDEA强大的JS部分的功能。

1、Eclipse-IBM甩出来给开源社区的IDE,其本身就是使用Java开发的。\x0d\x0a2、MyEclipse-把Eclipse包装了一下,加了J2EE企业开发的许多功能强大的插件。\x0d\x0a3、NetBeans-SUN公司自己开发的Java开发环境,功能挺多的。\x0d\x0a4、还有一些超喜欢手工编写Java代码的牛人喜欢使用带语法着色功能的纯文本编辑器编写Java程序,代码写完后在命令提示符下编译运行。这种方式只适用写少量代码或作为学习使用,开发大型项目不适用,因为效率很低。

1.CodeSandbox(基于React的在线代码沙盒平台)我常用的

②地址:

③图示

2.CodePen(前端代码编辑运行的网站)

①CodePen是一个完全免费的前端代码托管服务,主要功能有:

3.JSRUN(支持手机端的在线JS编辑器)

①jsrun是一款支持手机端的在线JS编辑器,HTML/CSS/Javascript在线代码运行工具,js代码在线测试调试,是runjs的升级版支持vue.js/angular.js的在线编辑器

4.jsFiddle(前端代码编辑运行的网站)

5.Ideone(C和C++的在线编译和调试工具,支持其他的60种语言)我常用

①Ideone是C和C++的在线编译和调试工具,支持其他的60种语言。这个工具提供许多强大的功能,允许程序员快速高效的编译源代码

6.Codechef(C,C++和Java的在线编译工具)

①它支持C,C++和Java,非常接近真正的桌面IDE。这是超快速和易于使用。适合于课堂和作业的学生,练习面试问题。

7.JDoodle(C,C++和Java的在线IDE)

①支持协作代码。它只是从一个简单的文本区域开始,您可以粘贴代码,然后单击运行。您可以更改命令行参数并在运行该程序之前设置stdin。最适合新的在线编辑器不支持的许多旧语言。

8.OnlineGDB(在线C,C++,Java,PHP编译器)我常用

①它支持C,C++,PHP和Java编译器。OnlineGDB的独特功能是,您可以逐步调试您的代码。一旦代码被写入,它可以很容易地格式化,使其看起来不错。

9.GCC资源管理器

①GCC编译器资源管理器是一个交互式在线编译器,它显示编译后的C++、RISE、GO(以及更多)代码的汇编输出。

THE END
1.C++编译器下载C++编译器手机版2024官方下载查找手机版C++编译器下载?PP提供C++编译器2024版官方下载。C++编译器是一款非常精简的APP,主要为C++语言初学者提供核心的功能,能够验证一些小程序。该软件支持从文件管理器中打开代码,方便用户浏览查看。 C++编译器更新说明: 使用的编译模块 C++编译器10.4.1下载安装说明: 下载C++编译器手机上面的方法很多。安卓系统手机https://wap.pp.cn/app_BywhcxYDgzu/
2.C#编程工具MicrosoftLearnDotfuscator .NET 混淆器 Decompiler.NET Deploy.NET Salamander .NET 混淆器 语义设计:C# 源代码混淆器 Spices.Net Thinstall Demeanor for .NET Xenocode Postbuild 2006 .NET Reactor 反编译器 Dis# Exemplar/Anakrino Reflector .NET Decompiler Salamander .NET Decompiler (C#, C++, Visual Basic .NET, IL, https://msdn.microsoft.com/zh-cn/vcsharp/aa336818.aspx
3.推荐一款C/C++在线编译器c++网页版推荐一款基于cppweb开发的C/C++在线编译器,地址:https://www.winfengtech.com/compile,平时写些小demo比较方便,在手机上也可以编程。支持代码折叠、语法高亮等功能,全屏模式,界面可视面积大。支持本地代码收藏功能,你也可以导出代码保存本地,然后在其他地方导入使用。功能界面如下: https://blog.csdn.net/xungen/article/details/84255642
4.c语言网页版在线编译器c语言网页版在线运行c编译器-c语言的编译器是干什么用的本人不才,仅就个人意见谈谈: 1。c语言编译器哪个好?g++,icc. 小问题二:在类中对友元函数和重载的支持不是很好,虽然打了补丁,还是有点问题,最经典的一次就是我写了一个类的https://cloud.tencent.com/developer/information/c%E8%AF%AD%E8%A8%80%E7%BD%91%E9%A1%B5%E7%89%88%E5%9C%A8%E7%BA%BF%E7%BC%96%E8%AF%91%E5%99%A8
5.c语言网页版在线编译器怎么用,怎样在平板上用c语言编程5,怎样使用网页在线编辑器 1,怎样在平板上用c语言编程 去我的百度空间看看,我写了一篇文章就是介绍这个的 。http://hi.baidu.com/yysniper/home 用编译器(一般编程程序自带)编译c语言文件编译完就可运行! 2,c 编译器怎么用 在右上角有按钮的,我用手机,也不知怎么描述,这样吧,你下中文版的,然后放鼠标到http://www.lisdn.com/mnsj/hhzs/505137.html
6.程序员专用十大在线编译器(IDE)整理① GCC编译器资源管理器是一个交互式在线编译器,它显示编译后的C++、RISE、GO(以及更多)代码的汇编输出。 ② 地址:https://gcc.godbolt.org/ ③ 图示 编辑界面 (图 9-1) 10. plnkr edit在线编辑器 ① js的在线编辑器。 ② 地址:http://plnkr.co/edit/ https://www.51cto.com/article/600631.html
7.快对作业网页版在线下载C++编译器 大小:60.33MB 版本:11.1.1 C语言编译器 大小:71.38MB 版本:11.1.1 逻辑电路模拟器 大小:26.96MB 版本:36.0.0 大学搜题酱 大小:46.60MB 版本:2.24.0 课程表达人 大小:8.45MB 版本:6.0 相关攻略 更多+ 《今日头条》解除锁定方法 《快对作业》取消收藏书单方法 《快对作业》下载答案储存路https://shouyou.3dmgame.com/android/237474.html
8.hth网页版在线登录入口官方版(2024APP)【下载次数74425】支持:winall/win7/win10/win11现在下载,新用户还送新人礼包hth网页版在线登录入口是一款经典好用的跨渠道编译器,具有才能强、经验丰富的开发团队,并且内嵌C++,C structur,支撑JSON, SSL, TCP多种现代规范,一起经过该软件,你能构建运行在GNU/Linux、Windowshttp://m.share.www.hzkzjk.com/mPa/detail/jqDmxi.html
9.推荐一款强大的在线编译器几款优秀的支持C、C++等多种语言的在线编译器 https://www.onlinegdb.com(公号不支持外链接,请复制链接到浏览器打开) 最后,这些在线编译器对于一些初学者(不懂各种配置),或者想测试本地没有的编译环境都是非常有用的,大家有: 如果代码有错误,在线编译,也会提示: 总的来说,这款在线编译器的功能挺多,也https://www.pianshen.com/article/795354268/
10.基于STM32设计的农作物生长管理系统上位机的开发选择Qt框架,编程语言采用C++;Qt是一个1991年由Qt Company开发的跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。Qt是面向对象的框架,使用特殊的代码生成扩展(称为元对象编译器(Meta Object Compiler, moc))以及一些宏,Qt很容易扩展,并且允许https://www.elecfans.com/d/6186954.html
11.wandbox在线ide(推荐!)Stdinhttps://wandbox.org/
12.GCC在线编译器的使用教程是什么问答GCC是一种广泛使用的开源编译器,可以用于编译C、C++等编程语言。GCC在线编译器是指可以通过网页访问并使用GCC编译器的服务。以下是使用GCC在线编译器的一般步骤:1. 打开GCC在线编译器的https://www.yisu.com/ask/61671196.html
13.JavaScript忍者秘籍(第2版)浏览器目前提供给我们的工具以及开源社区,是过去实践之后的光明。我们现在有大量的可供选择的测试框架,有持续集成测试的能力,可以生成代码覆盖报告,在真正的全球移动设备上做性能测试,甚至可在任何平台上自动加载虚拟浏览器进行测试。 这本书的第1版极大地受益于Bear Bibeault 的开发洞察力。这个版本得到Josip Maras大量https://www.epubit.com/bookDetails?id=N10511
14.写代码也是一份人命关天的工作:盘点改变世界的那些代码机器之心编译 参与:高璇、张倩 让人焦虑的「点赞」按钮、失联的火星气候轨道飞行器、死难数百人的波音 737 Max 空难……原来都与代码有关。 2009 年,Facebook 推出了一份改变世界的代码——点「赞」按钮。「赞」是包括 Leah Pearlman 和 Justin Rosenstein 在内的数名程序员和设计师的创意。他们认为 Facebookhttps://www.thepaper.cn/newsDetail_forward_5051195
15.后端编译运行服务),从而实现在线oj的正常使用。使用语言:C/C++负载均衡oj项目基于http网络请求,通过简单的前后端交互:前端的页面编辑、提交代码,后端控制模块和编译运行的模块分离整合(负载均衡式的选择后端编译运行服务),从而实现在线oj的正常使用。使用语言:C/C++,服务器环境:Linux CentOS7,gcc (GCC) 7.3.1 20180303 (Red https://github.com/NQ-lovecpp/Load-balancing-online-judging-system/
16.Java编程思想第四版完整中文高清版.docx然而,如果是在堆上创建对象,编译器就会对它的生命 周期一无所知。在像C++这样的语言中,必须通过编程方式来确定何时销毁对象,这可能会因 为不能正确处理而导致内存泄漏(这在C++程序中是常见的问题)o Java提供了被称为“垃圾回 收器”的机制,它可以自动发现对象何时不再被使用,并继而销毁它。垃圾回收器非常有用https://m.book118.com/html/2020/0327/6125010052002152.shtm
17.c++编译器下载c++编译器v10.2.5最新版电脑免费中文下载c++编译器采用先进的编译技术,显著提升C++代码编译速度,缩短开发周期,内置智能优化算法,自动分析代码结构,优化执行效率,减少资源消耗。支持多种操作系统平台,包括Windows、Linux、macOS等,确保代码无缝迁移。 软件特色 强大调试功能 集成先进的调试工具,支持断点、单步执行、变量监视等,助力快速定位问题。 代码分析与重构 提https://patch.ali213.net/showpatch/255635.html
18.嵌入式浏览器开发向东博客专注WEB应用构架之美使用C++面向对象的设计。因为使用FLTK,所以可以在嵌入式的Micro Window平台运行,该浏览器支持简单的表格,界面还没有做(只有一个主窗口),不支持中文,由于FLTK的BUG比较多,我们在实际编译时经常出错,即使编译通过,也常常是还没运行就core dump了,但曾经由某人编译成功,基本可用,网址是:http://www.gzilla.com。http://jackxiang.com/post/1919/1/2/
19.Java在线运行,Java在线编译,在线java编程Java网页版在线编译器,是一款可在线编程编辑器,在编辑器上输入Java代码,点击运行,可在线编译运行Java,Java代码在线运行调试,Java在线编译,可快速在线测试您的Java代码,在线编译Java代码发现是否存在错误,如果代码测试通过,将会输出编译后的结果。 Java 是一门面向对象编程语言,由Sun Microsystems公司推出的高级程序设计语言https://jsrun.net/java/t/AfKKp