实现方法请具体参照《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
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import javax.swing.event.*;
import java.util.*; //Date needed
import java.io.PrintWriter;
public class NotePad extends JFrame
{
JTextArea jta;
class newl implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
jta.setText("");
}
}
class openl implements ActionListener
{ public void actionPerformed(ActionEvent e)
{
JFileChooser jf=new JFileChooser();
jf.showOpenDialog(NotePad.this);
}
}
//保存文件的监听
class savel implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
JFileChooser jf = new JFileChooser();
jf.showSaveDialog(NotePad.this);
}
}
//打印的监听 ?
class printl implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
// PrintWriter p = new PrintWriter(NotePad.this);
}
}
//退出记事本的监听
class exitl implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
System.exit(0);//退出
}
}
//拷贝的监听
class copyl implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
jta.copy();
}
}
//粘贴的监听
class pastel implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
jta.paste();
}
}
//剪切的监听
class cutl implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
jta.cut();
}
}
//查找的监听
//添加日期的监听
class datel implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
Date d=new Date();
jta.append(d.toString());
}
}
//构造函数
public NotePad()
{
jta=new JTextArea("",24,40);
JScrollPane jsp=new JScrollPane(jta);
JMenuBar jmb=new JMenuBar();
JMenu mFile=new JMenu("File");
JMenu mEdit=new JMenu("Edit");
JMenuItem mNew=new JMenuItem("New",KeyEvent.VK_N);
mNew.addActionListener(new newl());
mFile.add(mNew);
JMenuItem mOpen=new JMenuItem("Open",KeyEvent.VK_O);
mOpen.addActionListener(new openl());
mFile.add(mOpen);
JMenuItem mSave=new JMenuItem("Save");
mSave.addActionListener(new savel());
mFile.add(mSave);
mFile.addSeparator(); //添加分割线
JMenuItem mPrint = new JMenuItem("Print");
mPrint.addActionListener(new printl());
mFile.add(mPrint);
mFile.addSeparator(); //添加分割线
JMenuItem mExit=new JMenuItem("Exit");
mExit.addActionListener(new exitl());
mFile.add(mExit);
mFile.setMnemonic(KeyEvent.VK_F);
//编辑菜单的子菜单的处理
JMenuItem jmi;
jmi=new JMenuItem("Copy");
jmi.addActionListener(new copyl());
mEdit.add(jmi);
jmi=new JMenuItem("Cut");
jmi.addActionListener(new cutl());
mEdit.add(jmi);
jmi=new JMenuItem("Paste");
jmi.addActionListener(new pastel());
mEdit.add(jmi);
mEdit.addSeparator(); //添加分割线
jmi=new JMenuItem("Find");
mEdit.add(jmi);
jmi=new JMenuItem("FindNext");
mEdit.add(jmi);
mEdit.addSeparator();
jmi=new JMenuItem("Select All");
mEdit.add(jmi);
jmi=new JMenuItem("Date/Time");
jmi.addActionListener(new datel());
mEdit.add(jmi);
jmb.add(mFile);
jmb.add(mEdit);
this.setJMenuBar(jmb);
this.getContentPane().add(jsp);
this.setSize(200,200);
this.setVisible(true);
}
//主函数,程序入口点
public static void main(String s[])
{
new NotePad();
}
}
你 安装JDK的时候 有没选择安装runtime environment 如果没有在装一个 ,不大 十几兆判中歼培哗,然后设置下掘冲环境变量。
在Java开发中,使用 Alt+/ 快捷键可以在编辑器中调用代码提示(代码自动补全)功能,提高编码效率。若快捷键不起作用,可以尝试以下几种方法,以Windows系统为例:
1. 检查快捷键是否和其他旁哪程序产生冲突,可以更改快捷键或渣如禁用其他程序的快捷键。
2. 检查Java开发IDE(例如Eclipse、IntelliJ IDEA等)中的设置,确认是否启用了代码自动补全功能。
3. 检查输入法设置,可能因为输入法造成快捷键失效,可以尝试切换输入法或者暂时关闭输入法的快捷键。
4. 在Java开发IDE中查看快捷键设置,确认 Alt+/ 是否被如启启设置为代码提示的快捷键。如果没有设置,可以手动将快捷键与代码提示功能绑定。
总之,在Java开发中快捷键使用顺畅可以提高开发效率,调整快捷键可以根据个人习惯和使用习惯进行调整。