实现方法请具体参照《Eclipse swt/Jface核心编程》
站在用户的角度思考问题,与客户深入沟通,找到湘西土家族网站设计与湘西土家族网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站制作、成都做网站、企业官网、英文网站、手机端网站、网站推广、国际域名空间、雅安服务器托管、企业邮箱。业务覆盖湘西土家族地区。
第21章 文本处理.
21.1 文本处理概述... 409
21.2 项目实战:JavaScript编辑器... 409
21.2.1 主窗口预览... 409
21.2.2 项目文件结构... 410
21.3 主窗口模块... 411
21.3.1 代码实现... 411
21.3.2 主窗口程序代码分析... 414
21.3.3 启动主窗口程序... 416
21.4 代码着色... 417
21.4.1 源代码配置类(SourceViewerConfiguration)... 417
21.4.2 基于规则的代码扫描器类(RuleBasedScanner)... 419
21.4.3 设置代码扫描规则... 420
21.4.4 提取类(Token)和文本属性类(TextAttribute)... 423
21.5 内容辅助... 423
21.5.1 配置编辑器的内容助手... 424
21.5.2 内容辅助类... 424
21.5.3 辅助建议类(CompletionProposal)... 426
21.6 文档的撤销与重复... 427
21.6.1 文档管理器对象(DefaultUndoManager)... 427
21.6.2 撤销操作的实现... 427
21.6.3 恢复操作的实现... 428
21.7 查找与替换窗口... 429
21.7.1 窗口的界面设计... 429
21.7.2 查找功能的实现... 433
21.7.3 替换功能的实现... 434
21.8 首选项的对话框... 434
21.8.1 首选项页面的代码实现... 435
21.8.2 打开首选项页面的代码... 436
21.9 文件的打开、保存与打印... 437
21.9.1 打开文件... 437
21.9.2 保存文件... 437
21.9.3 打印文件... 438
21.10 帮助对话框... 439
21.11 其他的一些工具类... 440
21.11.1 事件管理类... 440
21.11.2 资源管理类... 441
21.11.3 程序中使用的常量... 443
21.12 本章小结... 444
1、看懂?在之前,我建议至少将JAVA基础搞的贼啦精。
2、先能看懂自己所学课程中的范例
3、看懂自己写的复杂代码
4、看懂别人写的代码
5、能够看懂JDK一部分源代码
这代码有两个重点:一是entity是个什么类型,大概是数据库映射的实体类,那么就要多看看相关的书籍了,二是业务逻辑,也就是和订单相关的一系列流程,先自己理理。我比较熟悉C#,对java一窍不通,看着和你一样的发晕啊。
基础不扎实,我注释了你也不一定能看懂,还是要多看书、多学习!
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
//以上三项导入相应的包,编写GUI要用到以上三个包的内容
public class text {
public static void main(String[] args) {//主方法
Edittext edit=new Edittext("记事本");//创建一个Edittext类型的窗体
}
}
class Edittext extends JFrame implements ActionListener{//Edittext类的定义,继承自JFrame,实现接口ActionListener
JMenuBar menubar;//菜单栏
JMenu menu; //某菜单
JMenuItem itemcopy,itemcut,itempaster;//菜单的条目
JTextArea text1; //文本编辑框
Edittext(String s){ //构造方法,参数为标题名称
setTitle(s); //设置窗体标题
setSize(260,270); //窗体尺寸
setLocation(120,120); //窗体在屏幕上的位置
setVisible(true); //窗体可见
text1=new JTextArea(10,10); //构造一个文本编辑区
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); //设置窗体点击关闭按钮后的操作,此处为销毁窗体
//常用的还有EXIT_ON_CLOSE,表示退出程序
add(text1); //文本区添加到窗体
menubar=new JMenuBar(); //定义菜单栏
menu=new JMenu("编辑"); //定义菜单
itemcopy=new JMenuItem("复制");//定义菜单项目,以下二项与此相同
itemcut=new JMenuItem("剪切");
itempaster=new JMenuItem("粘贴");
menu.add(itemcopy); //此三项菜单项目加入到菜单menu中
menu.add(itemcut);
menu.add(itempaster);
menubar.add(menu); //把菜单添加到菜单栏中
setJMenuBar(menubar); //设置窗体的菜单栏为上面定义的menubar
validate(); //验证容器与其子组件,作用是使其可见,添加完组件后就调用此方法
itemcopy.addActionListener(this); //为菜单项添加监听器,因为本类实现了ActionListener并且在后文中写了处理方法,
//所以此处为this,以下二项同理
itemcut.addActionListener(this);
itempaster.addActionListener(this);
}
public void actionPerformed(ActionEvent e) {//实现ActionListener接口,必须重写此方法,定义了组件发生有意义的
//事件时的处理方法
if(e.getSource()==itemcopy) //判断事件源,并作相应处理
text1.copy(); //文本区选中的内容复制到系统剪贴板
if(e.getSource()==itemcut)
text1.cut(); //文本区选中的内容“剪切”到系统剪贴板
if(e.getSource()==itempaster)
text1.paste(); //从系统剪贴板“粘贴”到文本区光标处
}
}
//TextArea :public Font getFont() 获取组件的字体。
Font font1=ta1.getFont();
//TextArea :public void setFont(Font f) 设置组件的字体。
// Font 类的构造函数: public Font(String name, int style, int size) 根据指定名称、样式和磅值大小,创建一个新 Font。
ta1.setFont(new Font(font1.getName(),font1.getStyle(),font1.getSize()));
//取得 ta1 使用的字体样式
int style1=font1.getStyle();
// BoldB 和 ItalicB 可能是两个按钮,用来设置是否加粗和斜体
// 下面的 if 语句根据按下的按钮来设置字体样式(style)
if((e.getSource()==BoldB)||(e.getSource()==ItalicB))
{
//字体样式(style)可以取下面三个常量值
//public static final int PLAIN 0 ,普通
//public static final int BOLD 1 ,加粗
//public static final int ITALIC 2 ,斜体
//以及 BOLD + ITALIC ,粗斜
// " ^ " 是按位异或运算符,异或的规则是
// 1^1=0,0^0=0,1^0=1,0^1=1,即不同值为1,相同值为0
// *************************注意下面是这段程序最精彩的地方*************************
// ********************就下面的两条注释就值你的分数了,哈哈 *********************
//根据异或运算的规则,点击按钮 BoldB,如果字体原来不是加粗的则加粗,原来已经加粗的则取消加粗
if(e.getSource()==BoldB) style1=style1^1;
/根据异或运算的规则,/点击按钮 ItalicB,如果字体原来不是倾斜的则倾斜,原来已经倾斜的则取消倾斜
if(e.getSource()==ItalicB) style1=style1^2;
ta2.setFont(new Font(font1.getName(),style1,font1.getSize()));
}