java菜单编辑
代码编辑器的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用来显示代码编辑器的相关的信息。
GUI实践-为窗口添加菜单条和工具条
实践——为窗口添加菜单条和工具条步骤1:新建工程,以自己的学号命名:如。
在建好的java project里,新建可视化类mainFrame,继承自swing包中的JFrame类,窗口自带内容面板名称为“jContentPane”,将窗口的标题改为“主窗体”,修改窗口的属性,将“visiable”属性改为“true”;步骤2:修改jContentPane,将其“layout”属性改为“null”;步骤3:下面开始制作菜单,打开可视化编辑区域右侧浮动的组件面板“Palette”,添加菜单条,在“swing menus”页中选中JMenuBar,单击拖动到“mainFrame”,将其命名为“jJMenuBar”;注意:也可以在“java beans”页面,选中“this-“主窗体”,再进行拖动。
步骤4:打开可视化编辑区域右侧浮动的组件面板“Palette”,添加菜单,在“swing menus”页中选中JMenu,单击拖动到“jJMenuBar”,将其命名为“jMenu1”;修改“jMenu1”的“text”属性为“文件”。
步骤5:打开可视化编辑区域右侧浮动的组件面板“Palette”,添加菜单项,在“swing menus”页中选中JMenuItem,单击拖动到“jMenu1”,将其命名为“jMenuItem1”;修改“jMenuItem1”的“text”属性为“新建”。
步骤6:重复步骤5的操作,新建菜单项“jMenuItem2”;修改“jMenuItem2”的“text”属性为“保存”。
步骤7:重复步骤5的操作,新建菜单项“jMenuItem3”;修改“jMenuItem3”的“text”属性为“退出”。
步骤8:打开可视化编辑区域右侧浮动的组件面板“Palette”,添加工具栏,在“swing menus”页中选中JToolBar,单击拖动到“jContentPane”,将其命名为“jJToolBarBar”;在可视化编辑区合理调整工具条的大小;步骤9:打开可视化编辑区域右侧浮动的组件面板“Palette”,添加工具栏里面的按钮,在“Swing Components”页中选中JButton,单击拖动到“jJToolBarBar”,将其命名为“jButton1”;修改“jButton1”的“icon”属性,给按钮添加一幅图片;可以从工程目录里添加,也可以从本地硬盘的某个位置添加;步骤10:重复步骤9,再给工具条添加一个按钮;步骤11:给菜单项“退出”添加事件处理代码;在Eclipse工作台的左下角“java bean”页面中选中“退出”菜单项,单击右键,在弹出的快捷菜单中选中“Event”,在弹出的二级菜单中选中“action performed”单击,此时编译环境自动生成了“退出”菜单项的动作事件处理代码框架如下:jMenuItem2.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent e) {System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed()}});在方法体里添加如下:System.exit(0);步骤12:重复步骤11,也可以给工具栏中的某个按钮添加事件处理。
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 JMenu菜单
java JMenu菜单在一个窗口中,经常需要给窗口添加菜单条。
在Java中这一部分是由JMenuBar、JMenu和JMenuItem三个类实现的,分别对应菜单条、菜单和菜单项。
1.菜单栏(JMenuBar)创建菜单栏是制作菜单的第一步,并JMenuBar的构造方法相当简单,如通过“JMenuBar TestJMenuBar=new JMenuBar();”语句即可创建。
而在设置菜单栏时,可以通过表9-22所示的常用方法。
需要说明的是,JMenuBar类根据JMenu添加的顺序从左到右显示,并建立整数索引。
2.菜单(JMenu)在添加完菜单栏后,并不会显示任何菜单内容,所以还需要在菜单栏中添加菜单内容。
菜单内容的JMenu类的构造方法有4种:●JMenu( ) 构造一个空菜单。
●JMenu(Action a) 构造一个菜单,菜单属性由相应的动作来提供。
●JMenu(String s) 用给定的标志构造一个菜单。
●JMenu(String s,Boolean b) 构造一个新JMenu,用提供的字符串作为其文本并指定其是否为分离式(tear-off)菜单。
在构造完后,使用JMenuBar类的add方法添加到菜单栏中。
而JMenu的常用方法如表9-23所示。
3.菜单项(JMenuItem)在菜单中可以添加不同的内容,可以是菜单项(JMenuItem),可以是一个子菜单,也可以是分隔符。
子菜单的添加是直接将一个子菜单添加到母菜单中,而分隔符的添加只需要将分隔符作为菜单项添加到菜单中。
菜单的该实现是一个包含JMenuItem的弹出窗口,用户选择JMenuBar上的项时会显示该JMenuItem。
除JMenuItem之外,JMenu还可以包含JSeparator。
其菜单项的构建方法如下:●JMenuItem() 创建不带有设置文本或图标的JMenuItem。
●JMenuItem(Action a) 创建从指定的Action获取其属性的菜单项。
《Java》课程设计》记事本
《Java课程设计》记事本课程设计报告书目录一、设计课题二、设计目的三、操作环境四、设计场所(机房号、机器号或自己机器)五、设计过程(设计内容及主要程序模块)六、本次设计中用到的课程知识点(列出主要知识点)七、设计过程中遇到的问题及解决办法八、程序清单五、设计过程(设计内容及主要模块,不少于3000字)1.设计要求1)界面设计2)功能实现(1)文件菜单:新建、打开、保存、另存为、退出等。
(2)其中新建菜单项可以新建一个记事本程序;打开菜单项可以打开一个用户指定的文本文件,并将其内容显示在记事本的文本区域;保存和另存为菜单项可分别实现文件的保存和另存为3)编辑菜单:复制、剪切和粘贴等4)帮助菜单:软件版本信5)右键弹出快捷菜单2.总体设计1)功能模块图:图一功能模块图2)功能描述1、打开记事本。
首先是标准型的记事本,拥有文件、编辑。
格式和帮助。
如图1所示:图1标准型记事本界面2、在标准型的记事本界面中,进行的新建一个本件名字叫新记事本。
如图2记事本文件帮助新建打开保存另存为退出复制剪切粘贴编辑关于记事本右键快捷格式字体颜色图2新建记事本功能3、用打开文件打开刚刚新建的新记事本。
如图三所示。
图3—打开文件4、点击退出即可退出,如图4所示:图4—退出记事本5、点击帮助可以看到有关记事本的相关信息,其中有作者名、版本、许可条款、隐私声明等必要信息。
如图5所示:图5—帮助相关信息6、右键可实现复制、粘贴、剪切、清除等常用功能,方便用户可以快捷方便的使用记事本。
如图6所示:图6—右键功能7、编辑也可实现制、粘贴、剪切、清除等常用功能,方便用户选择自己适合的方式,自由选择方便的快捷方式使用。
如图7:图7—编辑八、程序清单package test;import java.io.File;import java.io.*;import java.awt.event.*;import java.awt.Toolkit;import java.awt.*;import javax.swing.*;import javax.swing.filechooser.*;public class Notebook extends JFrame implements ActionListener,ItemListener{ //组件创建JButton b_save,b_close; //按钮JTextArea textArea; //文本框File tempFile; //文件JPanel jp; //面板JMenu file,edit,style,help; //菜单JMenuItemf_new,f_open,f_save,f_close,f_saveas,e_copy, e_paste,e_cut,e_clear,e_selectAll,e_find,e_rep lace,s_font,s_color,h_editor,h_help; //菜单条JMenuBar jmb;JScrollPane jsp; //滚动面板JPopupMenu popUpMenu = new JPopupMenu(); //右键弹出式菜单JLabel stateBar;//标签JLabel jl,jj;JFileChooser jfc = new JFileChooser(); //文件选择JMenuItemje_copy,je_paste,je_cut,je_clear,je_selectAll,je _find,je_replace; //弹出式菜单条public Notebook(){jfc.addChoosableFileFilter(new FileNameExtensionFilter("文本文件(*.txt)","txt"));jmb = new JMenuBar();textArea = new JTextArea();jsp = new JScrollPane(textArea);file = new JMenu("文件");edit = new JMenu("编辑");style = new JMenu("格式");help = new JMenu("帮助");je_copy = new JMenuItem("复制(C) ");je_paste = new JMenuItem("粘贴(P) ");je_cut = new JMenuItem("剪切(X) ");je_clear = new JMenuItem("清除(D) ");je_selectAll = new JMenuItem("全选(A) ");je_find = new JMenuItem("查找(F) ");je_replace = new JMenuItem("替换(R) ");je_copy.addActionListener(this); //给弹窗式的各组件添加监听器je_paste.addActionListener(this);je_cut.addActionListener(this);je_clear.addActionListener(this);je_selectAll.addActionListener(this);je_find.addActionListener(this);je_replace.addActionListener(this);//给界面上方的菜单条添加监听器f_new = new JMenuItem("新建(N)");f_new.setAccelerator(KeyStroke.getKeyS troke('N',InputEvent.CTRL_MASK,false)); //设置带修饰符快捷键f_new.addActionListener(this);f_open = new JMenuItem("打开(O)");f_open.setAccelerator(KeyStroke.getKey Stroke('O',InputEvent.CTRL_MASK,false));f_open.addActionListener(this);f_save = new JMenuItem("保存(S)");f_save.setAccelerator(KeyStroke.getKey Stroke('S',InputEvent.CTRL_MASK,false));f_save.addActionListener(this);f_saveas = new JMenuItem("另存为");f_saveas.setAccelerator(KeyStroke.getKe yStroke(KeyEvent.VK_S,InputEvent.CTRL_ MASK|InputEvent.SHIFT_MASK));f_saveas.addActionListener(this);f_close = new JMenuItem("退出(W)");f_close.setAccelerator(KeyStroke.getKey Stroke('W',InputEvent.CTRL_MASK,false));f_close.addActionListener(this);e_copy = new JMenuItem("复制(C)");e_copy.setAccelerator(KeyStroke.getKey Stroke('C',InputEvent.CTRL_MASK,false));e_copy.addActionListener(this);e_paste = new JMenuItem("粘贴(V)");e_paste.setAccelerator(KeyStroke.getKeyStro ke('V',InputEvent.CTRL_MASK,false));e_paste.addActionListener(this);e_cut = new JMenuItem("剪切(X)"); e_cut.setAccelerator(KeyStroke.getKeyStroke ('X',InputEvent.CTRL_MASK,false));e_cut.addActionListener(this);e_clear = new JMenuItem("清除(D)");e_clear.setAccelerator(KeyStroke.getKeyStrok e('D',InputEvent.CTRL_MASK,false));e_clear.addActionListener(this);e_selectAll = new JMenuItem("全选(A)");e_selectAll.setAccelerator(KeyStroke.getKey Stroke('A',InputEvent.CTRL_MASK,false));e_selectAll.addActionListener(this);e_find = new JMenuItem("查找(F)");e_find.setAccelerator(KeyStroke.getKeyStrok e('F',InputEvent.CTRL_MASK,false));e_copy.addActionListener(this);e_replace = new JMenuItem("替换(R)");e_replace.setAccelerator(KeyStroke.getK eyStroke('R',InputEvent.CTRL_MASK,false)) ;e_replace.addActionListener(this);s_font = new JMenuItem("字体(T)");s_font.setAccelerator(KeyStroke.getKeyStrok e('T',InputEvent.CTRL_MASK,false));s_font.addActionListener(this);s_color = new JMenuItem("颜色(C)...");s_color.setAccelerator(KeyStroke.getKeyStro ke(KeyEvent.VK_C,InputEvent.CTRL_MAS K | InputEvent.SHIFT_MASK));s_color.addActionListener(this);h_editor = new JMenuItem("关于记事本");h_editor.setAccelerator(KeyStroke.getKeyStro ke(KeyEvent.VK_E,InputEvent.CTRL_MAS K));h_editor.addActionListener(this);h_help = new JMenuItem("帮助信息(H)");h_help.setAccelerator(KeyStroke.getKeyStrok e(KeyEvent.VK_I,InputEvent.CTRL_MASK) );h_help.addActionListener(this);//添加右键弹出式菜单popUpMenu.add(je_copy);popUpMenu.add(je_paste);popUpMenu.add(je_cut);popUpMenu.add(je_clear);popUpMenu.addSeparator();popUpMenu.add(je_selectAll);popUpMenu.add(je_find);popUpMenu.add(je_replace);//编辑区鼠标事件,点击右键弹出"编辑"菜单textArea.addMouseListener(new MouseAdapter(){public void mouseReleased(MouseEvent e) {if(e.getButton() == MouseEvent.BUTTON3)popUpMenu.show(e.getComponent(), e.getX(), e.getY());} //e.getComponent()和textArea具有同等效果public void mouseClicked(MouseEvent e){if(e.getButton() == MouseEvent.BUTTON1)popUpMenu.setVisible(false);}});this.setJMenuBar(jmb);this.setTitle("记事本程序");file.add(f_new); //添加文件菜单组件file.add(f_open);file.addSeparator(); //加分隔线file.add(f_save);file.add(f_saveas);file.addSeparator();file.add(f_close);edit.add(e_copy); //添加编辑菜单组件edit.add(e_paste);edit.add(e_cut);edit.add(e_clear);edit.addSeparator();edit.add(e_selectAll);edit.add(e_find);edit.add(e_replace);style.addSeparator();style.add(s_font);style.add(s_color);jmb.add(file); //添加格式菜单组件jmb.add(edit);jmb.add(style);jmb.add(help);help.add(h_editor); //添加帮助菜单组件help.add(h_help);//textArea.setWrapStyleWord(true); //设置在单词过长的时候是否要把长单词移到下一行。
EclipseJava编程入门教程
EclipseJava编程入门教程Eclipse Java编程入门教程第一章:介绍Eclipse和Java编程Eclipse是一个广泛使用的集成开发环境(IDE),用于开发各种应用程序,尤其是Java应用程序。
Java是一种面向对象的编程语言,广泛应用于企业级应用开发和移动应用开发。
本章将介绍Eclipse的基本概念和Java编程的基础知识。
1.1 Eclipse的安装和配置要使用Eclipse进行Java编程,首先需要在官方网站上下载并安装Eclipse IDE。
安装完成后,打开Eclipse,配置Java开发环境。
这包括设置JDK路径、创建工作空间和配置Eclipse的界面。
1.2 创建Java项目在Eclipse中,可以通过“New Project”选项创建一个Java项目。
选择项目类型和命名,在项目目录下创建源文件夹和包。
这样就能开始编写Java代码了。
第二章:Eclipse编程基础了解了Eclipse的基本使用方法后,本章将重点介绍Java编程的基础知识,包括变量、数据类型、运算符、流程控制和函数等。
2.1 变量和数据类型Java是一种强类型语言,每个变量都必须先声明,然后才能使用。
变量可以存储不同类型的数据,例如整数、浮点数、字符和布尔值等。
本节将介绍Java的各种数据类型,以及如何声明和使用变量。
2.2 运算符和表达式Java提供了多种运算符,包括算术运算符、赋值运算符、比较运算符和逻辑运算符等。
通过运算符和表达式,可以进行各种数学计算和逻辑判断。
本节将详细介绍Java的运算符和表达式的使用方法。
2.3 流程控制流程控制是编程中的重要概念,用于控制程序的执行流程。
Java提供了多种流程控制语句,包括条件语句(if-else语句、switch语句)、循环语句(for循环、while循环)和跳转语句(break语句、continue语句)。
本节将介绍这些流程控制语句的使用方法。
2.4 函数和方法函数是一段封装了特定功能的代码块,可以重复使用。
java课程设计报告-java课程设计
Java 课程设计报告题目:文本编辑器班级:学号:姓名:成绩:日期:年月日目录一、综合设计的目的与要求⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯3二、综合设计正文⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯31. 系统分析⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯31.1系统开发背景、开发范围、建设目标与必要性开发⋯⋯⋯⋯⋯⋯⋯⋯31.2需求分析⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯32.系统设计⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯32.1功能设计⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯32.2系统运行环境与开发工具⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯43 . 系统实施⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯4 3.1 源程序⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯43.2 .系统测试及部分截图⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯12三、综合设计总结或结论⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯13四、参考文献⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯13《文本编辑器》一、综合设计的目的与要求要求在学生能够较熟练使用java 程序设计语言进行软件代码的编写,同时还要具备较好的项目分析的能力,加深对相关课程基本内容的理解。
同时,在程序设计方法以及上机操作等基本技能和科学作风方面受到比较系统的练习。
二、综合设计正文1系统分析1.1系统开发背景、开发范围、建设目标与必要性随着计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
当然对文本编辑操作仍然占据着重要地位,记事本是简单便捷的文本编辑器,可实现对文本编辑操作的基本功能。
1.2需求分析程序设计主要分为两大部分:简单 GUI 设计和程序功能设计。
通过 GUI 设计实现图形用户界面,提供图形菜单,方便用户操作。
使用Java 语言编写一个能够对输入文字进行操作,具有合理的界面,能够在界面中实现右键快捷方式,对文档内容进行编辑操作,并且能够顺利退出的程序。
java JTextArea 实现不可修改文本内容、右键菜单
最近在写聊天室...显示的文本框内容应该是不可以修改只能复制,但是JFC没有提供那种是否只可读的属性。
我从网上有看到有人写好了这种类,然后自己又添加了右键菜单出现复制、粘贴、剪切的功能摘自/mq612的源代码:import java.awt.datatransfer.Clipboard;import java.awt.datatransfer.DataFlavor;import java.awt.datatransfer.Transferable;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.InputEvent;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import javax.swing.JFrame;import javax.swing.JMenuItem;import javax.swing.JPopupMenu;import javax.swing.JScrollPane;import javax.swing.JT extArea;import javax.swing.KeyStroke;import javax.swing.UIManager;/*** Java右键菜单实现文本组件内容的的复制、粘贴、剪切功能** @author 五斗米<如转载请保留作者和出处>* @blog/mq612*/public class Test extends JFrame {private static final long serialVersionUID = -5942087991012920147L;private JScrollPane pane = null;private TextAreaMenu text = null;public Test() {super("右键菜单");try { // 使用Windows的界面风格UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");} catch (Exception e) {e.printStackTrace();}text = new TextAreaMenu();pane = new JScrollPane(text);this.getContentPane().add(pane);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setSize(300, 200);this.setVisible(true);}public static void main(String args[]) {new Test();}/*** 带有功能菜单的JT extArea** @author 五斗米<如转载请保留作者和出处>* @blog/mq612*/class TextAreaMenu extends JTextArea implements MouseListener { private static final long serialVersionUID = -2308615404205560110L;private JPopupMenu pop = null; // 弹出菜单private JMenuItem copy = null, paste = null, cut = null; // 三个功能菜单public TextAreaMenu() {super();init();}private void init() {this.addMouseListener(this);pop = new JPopupMenu();pop.add(copy = new JMenuItem("复制"));pop.add(paste = new JMenuItem("粘贴"));pop.add(cut = new JMenuItem("剪切"));copy.setAccelerator(KeyStroke.getKeyStroke('C', InputEvent.CTRL_MASK)); paste.setAccelerator(KeyStroke.getKeyStroke('V', InputEvent.CTRL_MASK)); cut.setAccelerator(KeyStroke.getKeyStroke('X', InputEvent.CTRL_MASK)); copy.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {action(e);}});paste.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {action(e);}});cut.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {action(e);}});this.add(pop);}/*** 菜单动作* @param e*/public void action(ActionEvent e) {String str = e.getActionCommand();if (str.equals(copy.getText())) { // 复制this.copy();} else if (str.equals(paste.getText())) { // 粘贴this.paste();} else if (str.equals(cut.getText())) { // 剪切this.cut();}}public JPopupMenu getPop() {return pop;}public void setPop(JPopupMenu pop) {this.pop = pop;}/*** 剪切板中是否有文本数据可供粘贴** @return true为有文本数据*/public boolean isClipboardString() {boolean b = false;Clipboard clipboard = this.getToolkit().getSystemClipboard(); Transferable content = clipboard.getContents(this);try {if (content.getTransferData(DataFlavor.stringFlavor) instanceof String) {b = true;}} catch (Exception e) {}return b;}/*** 文本组件中是否具备复制的条件** @return true为具备*/public boolean isCanCopy() {boolean b = false;int start = this.getSelectionStart();int end = this.getSelectionEnd();if (start != end)b = true;return b;}public void mouseClicked(MouseEvent e) {}public void mouseEntered(MouseEvent e) {}public void mouseExited(MouseEvent e) {}public void mousePressed(MouseEvent e) {if (e.getButton() == MouseEvent.BUTTON3) { copy.setEnabled(isCanCopy());paste.setEnabled(isClipboardString());cut.setEnabled(isCanCopy());pop.show(this, e.getX(), e.getY());}}public void mouseReleased(MouseEvent e) {}}}我修改后可实现右键单击菜单、只可复制不可修改的代码public class NoEditArea extends JT extArea implements MouseListener{//以下代码实现右键复制功能private static final long serialVersionUID = -2308615404205560110L;private JPopupMenu pop = null; // 弹出菜单private JMenuItem copy = null, paste = null, cut = null; // 三个功能菜单private void init() {this.addMouseListener(this);pop = new JPopupMenu();pop.add(copy = new JMenuItem("复制"));copy.setAccelerator(KeyStroke.getKeyStroke('C', InputEvent.CTRL_MASK)); copy.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {action(e);}});this.add(pop);}public void action(ActionEvent e) {String str = e.getActionCommand();if (str.equals(copy.getT ext())) { // 复制this.copy();}}public JPopupMenu getPop() {return pop;}public void setPop(JPopupMenu pop) { this.pop = pop;}//文本组件是否具备复制的条件public boolean isCanCopy() {boolean b = false;int start = this.getSelectionStart();int end = this.getSelectionEnd();if (start != end)b = true;return b;}public void mouseClicked(MouseEvent e) {}public void mouseEntered(MouseEvent e) { }public void mouseExited(MouseEvent e) {}public void mousePressed(MouseEvent e) {if (e.getButton() == MouseEvent.BUTTON3) {copy.setEnabled(isCanCopy());pop.show(this, e.getX(), e.getY());}}public void mouseReleased(MouseEvent e) {}//以下代码实现不可修改文本框内容public NoEditArea(/*String string,int rows,int columns*/){super(/*string,rows,columns*/);init();addKeyListener(new KeyAdapter(){public void keyTyped(KeyEvent key) {key.consume();}public void keyPressed(KeyEvent key) {JTextArea temp = (JTextArea)key.getSource();int caretPos = temp.getCaretPosition();switch(key.getKeyCode()){case(KeyEvent.VK_LEFT):case(KeyEvent.VK_BACK_SPACE):if(caretPos>0){temp.setCaretPosition(caretPos -1);}break;case(KeyEvent.VK_RIGHT):if(caretPos<temp.getText().length()){ temp.setCaretPosition( caretPos+1);}break;case(KeyEvent.VK_DELETE):System.out.println("aaa");break;default:break;}key.consume();}public void keyReleased(KeyEvent key) {key.consume();}});}}NoEditArea已经封装好,直接用就可以了如果是普通的JTextArea,实现右键复制、粘贴、剪贴功能public class EditArea extends JTextArea implements MouseListener{public EditArea(){super();init();}// 以下代码实现右键复制功能private static final long serialVersionUID = -2308615404205560110L;private JPopupMenu pop = null; // 弹出菜单private JMenuItem copy = null, paste = null, cut = null; // 三个功能菜单private void init() {this.addMouseListener(this);pop = new JPopupMenu();pop.add(copy = new JMenuItem("复制"));pop.add(paste = new JMenuItem("粘贴"));pop.add(cut = new JMenuItem("剪切"));copy.setAccelerator(KeyStroke.getKeyStroke('C', InputEvent.CTRL_MASK)); paste.setAccelerator(KeyStroke.getKeyStroke('V', InputEvent.CTRL_MASK)); cut.setAccelerator(KeyStroke.getKeyStroke('X', InputEvent.CTRL_MASK)); copy.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {action(e);}});paste.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {action(e);}});cut.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {action(e);}});this.add(pop);public void action(ActionEvent e) {String str = e.getActionCommand();if (str.equals(copy.getT ext())) { // 复制this.copy();} else if (str.equals(paste.getText())) { // 粘贴this.paste();} else if (str.equals(cut.getText())) { // 剪切this.cut();}}public JPopupMenu getPop() {return pop;}public void setPop(JPopupMenu pop) {this.pop = pop;}//是否具备粘贴的条件public boolean isClipboardString() {boolean b = false;Clipboard clipboard = this.getT oolkit().getSystemClipboard(); Transferable content = clipboard.getContents(this);try {if (content.getTransferData(DataFlavor.stringFlavor) instanceof String) {b = true;}}catch(Exception e){return b;}//文本组件是否具备复制的条件public boolean isCanCopy() {boolean b = false;int start = this.getSelectionStart();int end = this.getSelectionEnd();if (start != end)b = true;return b;}public void mouseClicked(MouseEvent e) {}public void mouseEntered(MouseEvent e) { }public void mouseExited(MouseEvent e) { }public void mousePressed(MouseEvent e) {if (e.getButton() == MouseEvent.BUTTON3) { copy.setEnabled(isCanCopy());paste.setEnabled(isClipboardString());cut.setEnabled(isCanCopy());pop.show(this, e.getX(), e.getY());}}public void mouseReleased(MouseEvent e) {}。
Java 添加、修改、回复、删除Word批注
Java 添加、回复、修改(替换)、删除、读取Word批注批注是一种常用于对特定文档内容进行注解的工具或方法,起到解释说明、标记指正的作用。
在本篇文章中,将介绍如何操作Word批注的方法,包括:1. 添加批注:添加文本到批注、插入图片到批注;1.1 给指定段落添加批注1.2 给指定字符串添加批注2. 回复批注;3. 修改或替换批注:用文本替换批注中的文本内容、用文本替换批注中的图片、用图片替换批注中的图片;4. 删除批注:删除指定批注中的所有内容、删除指定批注中的指定内容5. 读取批注5.1 读取批注中的文本5.2 读取批注中的图片使用工具:Free Spire.Doc for Java (免费版)Jar文件获取及导入:方法1:通过官网获取jar包,并解压。
解压后,将lib文件夹下的Spire.Doc.jar文件导入java程序。
方法2:通过添加maven依赖导入到maven项目,参考导入步骤。
Java示例代码【示例1】给段落添加批注(文本、图片)import com.spire.doc.*;import com.spire.doc.documents.Paragraph;import ment;public class AddComment {public static void main(String[] args) {//加载测试文档Document doc = new Document("test.docx");//获取指定段落Section sec = doc.getSections().get(0);Paragraph para= sec.getParagraphs().get(3);//插入文本到批注Comment comment = para.appendComment("请在试验中将包含以下特征的实验样本记录在册,并整理好周记录报表,供后续观察取样。
Java中的GUI编程
集成Web技术:Java GUI编程将与Web技术更加紧密地集成,使得开发者能够更加方便地 开发出功能丰富、界面美观的Web应用程序。
增强安全性:Java GUI编程将更加注重安全性,提供更多的安全特性和工具,帮助开发者 构建更加安全的应用程序。
AWT组件使用示例
组件类型:按钮、标
签、文本框、选择框 等
组件属性:颜色、字 体、大小、位置等
组件事件:点击事件
、键盘事件、鼠标事 件等
组件布局:流式布局 、网格布局、边界布 局等
JavaFX组件库
JavaFX组件库简介
标题
JavaFX组件库是Java中用于构建GUI界面的工具包
标题
提供了丰富的UI控件,如按钮、文本框、列表等
BorderPane:分为 五个区域,可以设置 子节点的位置和比例 ,适合布局复杂的界
面
GridPane:按照网格 布局,可以设置行、列 、跨度等属性,适合布 局规则、整齐的界面
06
HBox和VBox:分别 按照水平或垂直方向 排列子节点,可以设 置对齐方式、间距等
07
JavaFX布局管理器的 使用方法:通过设置组 件的布局管理器属性, 可以轻松实现界面布局
。
JavaFX事件处理机制
事件源: JavaFX组件库 中的UI组件
事件类型:包 括鼠标事件、 键盘事件、触 摸事件等
事件处理:通 过注册监听器 来实现事件处 理
监听器类型: 包括事件监听 器、动作监听 器、选择监听 器等
事件传播:事 件从源组件传 播到父组件, 直到到达根节 点
使用EDITPLUS作为快速JAVA开发工具
JAVA入门——使用EDITPLUS作为快速JAVA开发工具【背景介绍】很多向往成为java开发程序员的同学,在编写程序之初碰到的一个问题是介绍java开发的教科书上往往并不详细说明开发工具的使用,或者另一种极端的情况是介绍用于大型工程的集成开发环境,如Eclipse或NetBeans等重量级IDE。
上述情况给学习者带来了不小的困惑,容易误认为学习Java语言很难,从而无法完成原定的学习计划,甚至放弃了学习Java语言的机会。
其实,对于初学者,如何有效建立快速且易用的开发环境是一个最为迫切的问题,本文在此推荐一个非常简单易用,且容易扩展的工具——EditPlus 3(文字编辑器)。
据Editplus网站介绍,该软件是 Windows 下的一个文本编辑器、HTML 编辑器、PHP 编辑器以及 Java 编辑器。
它不但是记事本的一个很好的代替工具,同时它也为网页作者和程序设计员提供了许多强大的功能。
它对 HTML、PHP、Java、C/C++、CSS、ASP、Perl、JavaScript 和 VBScript 的语法突出显示。
同时,根据自定义语法文件它能够扩展支持其它程序语言。
而且还具有自动完成、素材文本、列选择、强大的搜索和替换、多重撤销/重做、拼写检查、自定义快捷键,以及更多其它功能。
【完成目标】通过对EditPlus用户工具箱的设定,逐步完成扩展支持Java程序语言的配置,从而打造出一个非常适合小型而快速的Java开发环境,为下一步java语言的学习奠定良好的基础。
【实现步骤】以下是搭建使用EditPlus开发Java程序的步骤:第一步、获取安装文件,请访问/,下载并安装editplus3.3。
第二步、建议首先修改一下字体大小,当然也可以选择你喜欢的字体,但是为了代码的整洁,建议使用等宽字系列。
选择【工具】菜单中的【参数设置】,找到【字体】项,修改成14或16号字体,大的字体将使你更容易看清楚一些编写中的错误,如将英文字符逗号误写为中文逗号。
角色 菜单 表结构设计 java
角色菜单表结构设计java全文共四篇示例,供读者参考第一篇示例:角色菜单表结构设计在Java编程中起着重要作用,它是实现权限管理和用户角色管理的基础。
在一个系统中,通常会存在多种角色,每个角色对应不同的权限,而菜单则是用来展示不同权限下可操作的功能。
在设计角色菜单表结构时,需要考虑到系统的实际需求和多样性。
本文将探讨如何设计一个完整的角色菜单表结构,并使用Java语言实现。
一、角色菜单表结构设计1. 角色表(Role)角色表用来存储系统中定义的角色信息,每个角色对应一个或多个权限。
角色表的设计如下:角色ID(role_id):角色的唯一标识符,通常为一个整数值。
角色名称(role_name):角色的名称,用来描述角色的职能或身份。
备注(remark):对角色的描述信息。
创建时间(create_time):角色的创建时间。
更新时间(update_time):角色的更新时间。
2. 菜单表(Menu)关联ID(id):关联关系的唯一标识符,通常为一个整数值。
角色ID(role_id):关联的角色ID。
菜单ID(menu_id):关联的菜单ID。
4. 用户角色关联表(UserRole)根据上述设计原则,我们可以创建一个简单的角色菜单表结构示例,用来展示Java代码实现的逻辑。
具体定义如下:```@Entity@Table(name = "role")public class Role {@Id@GeneratedValue(strategy = GenerationType.IDENTITY)private Long roleId;private String roleName;private String remark;private Date createTime;private Date updateTime;// Getters and setters// toString method}```2. 菜单表(Menu)定义:以上是一个简单的角色菜单表结构设计示例,通过以上示例代码,我们可以在Java中实现角色菜单关联的逻辑。
Java 菜单按钮控制绘图程序
目录一、程序开发背景 (1)二、程序分析与设计 (1)(一)程序功能要求 (1)(二)程序模块结构设计 (1)1、程序流程 (1)2、模块化功能结构分析 (2)三、程序的设计与实现 (3)(一)图形界面 (3)(二)图形界面的实现 (3)四、系统测试 (4)五、总结 (10)六、附件(程序代码) (11)菜单按钮控制绘图程序一、程序开发背景进一步巩固Java课程中关于图形用户界面具体实现的知识,使用Eclipse开发平台来实现“菜单按钮控制绘图”课题。
二、程序分析与设计为了复习和巩固Java程序设计基础,和进一步理解和掌握Java 语言,学生要用Java语言设计一个完整的应用程序,使学生综合应用所学知识完成软件的分析、设计、调试和总结,可加深和巩固对理论教学和实验教学内容的掌握,使学生进一步掌握使用面向对象技术开发完整系统的方法。
(一)程序功能要求功能要求:实现简单绘图功能,具体要求:画直线,画空心或实心椭圆、画空心或实心矩形、画多边形(图形的位置和大小可在程序中设定)。
(二)程序模块结构设计1、程序流程用菜单和按钮控制绘图流程如图一所示图一菜单和按钮控制绘图流程图绘制图形:(1)直线(2)空心椭圆(3)实心椭圆(4)空心矩形(5)实心矩形(6)多边形2、模块化功能结构分析设计程序功能模块如图二所示用菜单和按钮控制绘图程序菜按单钮绘绘制制图图形形图二功能模块图菜单绘制图形要求:主菜单:直线、椭圆、矩形、多边形菜单项:(1)直线:直线(2)椭圆:实心椭圆、空心椭圆(3)矩形:实心矩形、空心矩形(4)多边形:多边形按钮项:直线、空心椭圆、实心椭圆、空心矩形,实心矩形、多边形三、程序的设计与实现(一)图形界面图形界面用于显示绘制的图形,界面主要包括4 个上标签、6个下标签和图形显示区域,其中上标签“椭圆”包含“实心椭圆”、“空心椭圆”两个子标签,“矩形”中又包含“实心矩形”,“空心矩形”两个子按钮。
(二)图形界面的实现图形界面的具体实现import java.awt.*;import java.awt.event.*;import javax.swing.*;以上代码用于导入以下程序所用到的包。
项目一 简单计算器或文本编辑器
flag=false;
write();
newNew();
}
}else{
newNew();
}
}else if("打开".equals(comm)){
JFileChooser jfc=new JFileChooser("D:\\java课堂笔记");
jfc.setDialogType(JFileChooser.OPEN_DIALOG);
->帮助主题:要求实现本软件的帮助文档。
(2)文本编辑器:(参考系统附件中的记事本功能)
三个菜单项:文件->打开
新建
保存
另存为
编辑->复制
->粘贴
帮助->关于编辑器:要求写本软件的相关信息;
->帮助主题:要求实现本软件的帮助文档。
3、界面中的功能:
(1)计算器:要求可实现简单的“+”、“-”、“*”、“/”以及混合运算。
flag=false;
value=result;
jta.setText(result);
}
}else if("保存".equals(comm)){
JFileChooser jfc=new JFileChooser("D:\\java课堂笔记");
if(flag){
int returnVal = jfc.showDialog(null,"保存为");
int returnVal = jfc.showDialog(null,"另存");
if(returnVal == JFileChooser.APPROVE_OPTION) {
java常用快捷键
java常用快捷键java常用快捷键Java是一门面对对象的编程语言,不仅汲取了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简洁易用两个特征。
以下是我整理的java常用快捷键,盼望能够关心到大家。
java常用快捷键1Eclipse中有如下一些和编辑相关的快捷键。
编辑快捷键1. 【ALT+/】此快捷键为用户编辑的好帮手,能为用户供应内容的帮助,不要为记不全方法和属性名称犯愁,当记不全类、方法和属性的名字时,多体验一下【ALT+/】快捷键带来的好处吧。
2. 【Ctrl+O】显示类中方法和属性的大纲,能快速定位类的方法和属性,在查找Bug时特别有用。
3. 【Ctrl+/】快速添加解释,能为光标所在行或所选定行快速添加解释或取消解释,在调试的时候可能总会需要解释一些东西或取消解释,现在好了,不需要每行进行重复的解释。
4. 【Ctrl+D】删除当前行,这也是笔者的最爱之一,不用为删除一行而按那么多次的删除键。
5. 【Ctrl+M】窗口最大化和还原,用户在窗口中进行操作时,总会觉得当前窗口小(尤其在编写代码时),现在好了,试试【Ctrl+M】快捷键。
查看和定位快捷键在程序中,快速定位代码的位置,快速找到Bug的所在,是特别不简单的事,Eclipse供应了强大的查找功能,可以利用如下的快捷键关心完成查找定位的工作。
1. 【Ctrl+K】、【Ctrl++Shift+K】快速向下和向上查找选定的内容,从今不再需要用鼠标单击查找对话框了。
2. 【Ctrl+Shift+T】查找工作空间(Workspace)构建路径中的可找到Java类文件,不要为找不到类而苦痛,而且可以使用“*”、“?”等通配符。
3. 【Ctrl+Shift+R】和【Ctrl+Shift+T】对应,查找工作空间(Workspace)中的全部文件(包括Java文件),也可以使用通配符。
4. 【Ctrl+Shift+G】查找类、方法和属性的引用。
java 弹出菜单事件
java 弹出菜单事件
在编写图形界面时,人们往往希望直接在窗口上单击鼠标右键,就可以显示弹出菜单。
通过弹出的上下文菜单,直接进行相关操作。
实现弹出菜单,需要通过鼠标事件MouseEvent和单击事件ActionEvent实现。
这两个事件在前面都已经介绍过,这里就不再重复介绍。
弹出菜单操作中,鼠标事件的事件源通常为窗口和文本框组件等,ActionEvent事件的事件源通常为菜单项。
下面创建一个案例,来说明弹出菜单事件的使用。
代码如下所示:
执行上述代码中,当右击鼠标时,会弹出快捷菜单。
选择不同的颜色会修改窗体的背景颜色,如图10-16所示。
图10-16 弹出菜单事件。
Java 弹出式菜单
JMenuItem exit = new JMenuItem("退出");
jPopupMenuOne.add(exit);//将exit添加到jPopupMenuOne中
//创建监听器对象
MouseListener popupListener = new PopupListener(jPopupMenuOne);
JPopupMenu popupMenu;
PopupListener(JPopupMenu popupMenu) {
this.popupMenu = popupMenu;
}
public void mousePressed(MouseEvent e) {
showPopupMenu(e);
}
public void mouseReleased(MouseEvent e) {
Java
JPopupMenu是一种越来越常见的菜单。与其他形式菜单不同的是,它并不固定在菜单栏中,而是能够自由浮动。
与JMenu一样,开发人员可以使用add方法和insert方法向JPopupMenu中添加或者插入JMenuItem与JComponent。JPopupMenu对添加到其中的每一个菜单项都赋予一个整数索引,并根据弹出式菜单的布局管理器调整菜单项显示的顺序。此外,还可以使用addSeparator( )方法添加分隔线。
jPopupMenuOne.add(fileMenu);//将copyFile添加到jPopupMenuOne中
jPopupMenuOne.addSeparator();//添加分割符
jPopupMenuOne.add(fileMenu2);
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
//菜单
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
public class MenuTest {
private JFrame jf;
private JMenuBar bar;
private JMenu file ,edit,view,je;
private JMenuItem[][] items;
public MenuTest(){
jf = new JFrame("菜单测试v1.3");
bar=new JMenuBar();
file = new JMenu("文件");
edit = new JMenu("编辑");
view = new JMenu("视图");
je = new JMenu("简介");
items = new JMenuItem[4][];
additem();
}
public void additem(){
items[0]=new JMenuItem[5];
file.add(items[0][0] = new JMenuItem("新建"));
file.add(items[0][1] = new JMenuItem("打开"));
file.addSeparator();
file.add(items[0][2] = new JMenuItem("保存"));
file.add(items[0][3] = new JMenuItem("另存为"));
file.addSeparator();
file.add(items[0][4] = new JMenuItem("退出"));
items[1]=new JMenuItem[3];
edit.add(items[0][0] = new JMenuItem("查找"));
edit.add(items[0][1] = new JMenuItem("替换"));
edit.add(items[0][2] = new JMenuItem("复制"));
items[2]=new JMenuItem[2];
view.add(items[0][0] = new JMenuItem("字体"));
view.add(items[0][1] = new JMenuItem("颜色"));
items[3]=new JMenuItem[5];
je.add(items[0][0] = new JMenuItem("姓名"));
je.add(items[0][1] = new JMenuItem("年龄"));
je.add(items[0][2] = new JMenuItem("性别"));
je.add(items[0][3] = new JMenuItem("职务"));
je.add(items[0][4] = new JMenuItem("生日"));
bar.add(file);
bar.add(edit);
bar.add(view);
bar.add(je);
jf.setJMenuBar(bar);
}
public void showMe(){
jf.setSize(400,300);
//jf.pack();
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[]args){
new MenuTest().showMe();
}
}。