📄 jeditor.java
字号:
package com.jeditor;
import java.awt.*;
import javax.swing.*;
import java.io.*;
import java.awt.event.*;
import sun.swing.plaf.nimbus.NimbusLookAndFeel;
class JEditor extends WindowAdapter implements ActionListener {
private JFrame mainFrame;
private JTextArea textAreaFile,textAreaOutput;
private JMenuBar menuBar;
private JMenuItem compileFile, runFile, newFile, openFile, saveFile,saveAsFile, exit;
private JMenuItem cut, copy, paste, select, find, replace, aboutMe, help;
char []fileshort={'N','O','S','A','x'};
char []editshort={'C','y','P','e',};
char []findshort={'F','R'};
char []helpshort={'b','H'};
private JSplitPane jsplitPane;
private JScrollPane scrollPaneFile;
private JScrollPane scrollPaneOutput;
private JToolBar jtoolBar;
static String title, filetitle, dir, tmaintext, state;
File filePath;
public JEditor() {
title="JEditor";
filePath=new File("D:\\Test");
UIManager.put("swing.boldMetal", Boolean.FALSE);
//JFrame.setDefaultLookAndFeelDecorated(true);
Toolkit.getDefaultToolkit().setDynamicLayout(true);
System.setProperty("sun.awt.noerasebackground","true");
mainFrame=new JFrame(title);
Toolkit theKit = mainFrame.getToolkit();
Dimension dim = theKit.getScreenSize();
mainFrame.setBounds(dim.width/4, dim.height/4, 600, 500);
try {
UIManager.setLookAndFeel(new NimbusLookAndFeel());
}
catch ( UnsupportedLookAndFeelException e ) {
System.out.println ("Program Terminated");
System.exit(0);
}
menuBar=new JMenuBar();
JMenu filemenu=new JMenu("File");
JMenu editmenu=new JMenu("Edit");
JMenu findmenu=new JMenu("Search");
JMenu buildmenu=new JMenu("Build");
JMenu helpmenu=new JMenu("Help");
filemenu.setMnemonic('f');
editmenu.setMnemonic('e');
findmenu.setMnemonic('s');
buildmenu.setMnemonic('b');
helpmenu.setMnemonic('h');
newFile=new JMenuItem("New",new ImageIcon("new.jpg"));
openFile=new JMenuItem("Open",new ImageIcon("openFile.jpg"));
saveFile=new JMenuItem("Save",new ImageIcon("saveFile.jpg"));
saveAsFile=new JMenuItem("Save As",new ImageIcon("saveFile.jpg"));
exit=new JMenuItem("Exit",new ImageIcon("error1.gif"));
cut=new JMenuItem("Cut",new ImageIcon("cut.jpg"));
copy=new JMenuItem("Copy",new ImageIcon("copy.jpg"));
paste=new JMenuItem("Paste",new ImageIcon("paste.jpg"));
select=new JMenuItem("Select All");
find=new JMenuItem("Find",new ImageIcon("find.jpg"));
replace=new JMenuItem("Find & Replace",new ImageIcon("replace.gif"));
compileFile=new JMenuItem("Compile",new ImageIcon("compileFile.gif"));
runFile=new JMenuItem("Execute",'t');
aboutMe=new JMenuItem("About");
help=new JMenuItem("Help",new ImageIcon("help.gif"));
mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
filemenu.add(newFile);
filemenu.add(openFile);
filemenu.add(saveFile);
filemenu.add(saveAsFile);
filemenu.add(exit);
editmenu.add(cut);
editmenu.add(copy);
editmenu.add(paste);
editmenu.add(select);
findmenu.add(find);
findmenu.add(replace);
buildmenu.add(compileFile,0);
buildmenu.add(runFile,1);
helpmenu.add(help);
helpmenu.add(aboutMe);
newFile.addActionListener(new NewFile());
openFile.addActionListener(this);
saveFile.addActionListener(this);
saveAsFile.addActionListener(this);
exit.addActionListener(this);
cut.addActionListener(this);
copy.addActionListener(this);
paste.addActionListener(this);
select.addActionListener(this);
find.addActionListener(this);
replace.addActionListener(this);
compileFile.addActionListener(this);
runFile.addActionListener(this);
aboutMe.addActionListener(this);
help.addActionListener(this);
newFile.setFont(new Font("Times new Roman",Font.ITALIC|Font.BOLD,15));
openFile.setFont(new Font("Times new Roman",Font.ITALIC|Font.BOLD,15));
saveFile.setFont(new Font("Times new Roman",Font.ITALIC|Font.BOLD,15));
saveAsFile.setFont(new Font("Times new Roman",Font.ITALIC|Font.BOLD,15));
exit.setFont(new Font("Times new Roman",Font.ITALIC|Font.BOLD,15));
newFile.setMnemonic('n');
openFile.setMnemonic('o');
saveFile.setMnemonic('s');
saveAsFile.setMnemonic('a');
exit.setMnemonic('x');
cut.setMnemonic('t');
copy.setMnemonic('c');
paste.setMnemonic('p');
select.setMnemonic('a');
find.setMnemonic('f');
replace.setMnemonic('r');
compileFile.setMnemonic('c');
runFile.setMnemonic('x');
help.setMnemonic('h');
aboutMe.setMnemonic('a');
JCheckBoxMenuItem bld=new JCheckBoxMenuItem("Bold");
JCheckBoxMenuItem itlc=new JCheckBoxMenuItem("Italic");
bld.addActionListener(this);
itlc.addActionListener(this);
bld.setMnemonic('b');
itlc.setMnemonic('i');
editmenu.add(bld,0);
editmenu.add(itlc,1);
editmenu.insertSeparator(2);
menuBar.add(filemenu);
menuBar.add(editmenu);
menuBar.add(findmenu);
menuBar.add(buildmenu);
menuBar.add(helpmenu);
runFile.setEnabled(true);
textAreaFile=new JTextArea();
textAreaOutput=new JTextArea("");
scrollPaneFile=new JScrollPane(textAreaFile, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
scrollPaneOutput=new JScrollPane(textAreaOutput, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
jsplitPane=new JSplitPane(JSplitPane.VERTICAL_SPLIT,scrollPaneFile,scrollPaneOutput);
scrollPaneFile.setMinimumSize(new Dimension(800,300));
scrollPaneOutput.setMinimumSize(new Dimension(800,150));
scrollPaneFile.setPreferredSize(new Dimension(800,500));
jtoolBar=new JToolBar("Tools", JToolBar.HORIZONTAL);
mainFrame.getContentPane().add(jtoolBar);
mainFrame.setJMenuBar(menuBar);
mainFrame.getContentPane().add(jsplitPane);
mainFrame.addWindowListener(this);
mainFrame.setVisible(true);
}
public void actionPerformed(ActionEvent e) {
String event=e.getActionCommand();
/****************************** FIND ****************************/
if(event.equals("Find")) {
new Find(textAreaFile);
}
/************************** FIND & REPLACE **********************/
if(event.equals("Find & Replace")) {
new Replace(textAreaFile);
}
/****************************** COPY ****************************/
if(event.equals("Copy")) {
textAreaFile.copy();
}
/****************************** CUT ****************************/
if(event.equals("Cut")) {
textAreaFile.cut();
}
/****************************** PASTE ****************************/
if(event.equals("Paste")) {
textAreaFile.paste();
}
/*************************** SELECT ALL ****************************/
if(event.equals("Select All")) {
textAreaFile.selectAll();
}
/************************** SAVE *******************************/
if(event.equals("Save")) {
if(mainFrame.getTitle().equals(title)) {
JFileChooser fileChooser=new JFileChooser();
fileChooser.setDialogTitle("Save");
int alert=fileChooser.showSaveDialog(mainFrame);
if(alert==JFileChooser.APPROVE_OPTION) {
try {
tmaintext = textAreaFile.getText();
filetitle = fileChooser.getSelectedFile().getName();
dir = fileChooser.getSelectedFile().getParent();
File file=new File(dir,filetitle);
System.out.println("Path of File"+file.getPath());
mainFrame.setTitle(filetitle+title);
//fileChooser.setCurrentDirectory(file);
FileOutputStream fos=new FileOutputStream(file);
for(int i=0;i<tmaintext.length();i++) {
fos.write((byte)tmaintext.charAt(i));
}
fos.close();
System.out.println("In Save 1");
}catch(Exception ef){}
}
else if(alert==JFileChooser.CANCEL_OPTION) {
System.out.println("Save Canceled");
}
}
else {
try {
tmaintext = textAreaFile.getText();
File file = new File(dir,filetitle);
FileOutputStream fos = new FileOutputStream(file);
for(int i=0;i<tmaintext.length();i++) {
fos.write((byte)tmaintext.charAt(i));
}
fos.close();
System.out.println("In Save 2");
}
catch(Exception ef){textAreaOutput.append("FileNotFound");}
}
}
/***************************** SAVE AS *****************************/
if(event.equals("Save As")) {
JFileChooser fileChooser=new JFileChooser();
fileChooser.setDialogTitle("SaveAs");
int alert = fileChooser.showSaveDialog(mainFrame);
if(alert == JFileChooser.APPROVE_OPTION) {
try {
tmaintext = textAreaFile.getText();
filetitle = fileChooser.getSelectedFile().getName();
dir=fileChooser.getSelectedFile().getParent();
File file = new File(dir,filetitle);
System.out.println("Path of File"+file.getPath());
mainFrame.setTitle(filetitle+title);
//fileChooser.setCurrentDirectory(file);
FileOutputStream fos=new FileOutputStream(file);
for(int ii=0;ii<tmaintext.length();ii++) {
fos.write((byte)tmaintext.charAt(ii));
}
fos.close();
System.out.println("In Save 1");
}catch(Exception ef){}
}
else if(alert==JFileChooser.CANCEL_OPTION) {
System.out.println("Save As Canceled");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -