📄 源代码.txt
字号:
package texteditor;
//导入所需包
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import com.borland.dbswing.*;
import java.io.*;
import javax.swing.text.*;
import javax.swing.event.*;
import java.awt.print.*;
import javax.swing.JPanel;
import javax.swing.JFrame;
import com.borland.jbcl.layout.*;
/**
* <p>Title:钦钦记事本 </p>
* <p>Description: 仿照windows的记事本</p>
* <p>Copyright: Copyright (c) 2007</p>
* <p>Company:异度空间 </p>
* @author not attributable
* @version 1.0
*/
//新建这种对象
public class Frame1 extends JFrame {
JPanel contentPane;
File file=null;
JMenuBar jMenuBar1 = new JMenuBar();
JMenu jMenuFile = new JMenu();
JMenuItem jMenuFileExit = new JMenuItem();
JMenu jMenuHelp = new JMenu();
JMenuItem jMenuHelpAbout = new JMenuItem();
JPanel jPanel1 = new JPanel();
JScrollPane jScrollPane1 = new JScrollPane();
JTextArea jTextArea1 = new JTextArea();
JMenuItem jMenuItem1 = new JMenuItem();
JMenuItem jMenuItem2 = new JMenuItem();
JMenuItem jMenuItem3 = new JMenuItem();
JMenuItem jMenuItem4 = new JMenuItem();
JMenuItem jMenuItem5 = new JMenuItem();
JMenuItem jMenuItem6 = new JMenuItem();
JMenuItem jMenuItem7 = new JMenuItem();
JMenuItem jMenuItem9 = new JMenuItem();
JMenuItem jMenuItem10 = new JMenuItem();
JMenuItem jMenuItem11 = new JMenuItem();
JMenuItem jMenuItem8 = new JMenuItem();
JMenuItem jMenuItem12 = new JMenuItem();
JMenuItem jMenuItem13 = new JMenuItem();
JMenuItem jMenuItem14 = new JMenuItem();
JMenuItem jMenuItem15 = new JMenuItem();
JMenu jMenu1 = new JMenu();
JMenu jMenu2 = new JMenu();
JPanel jPanel2 = new JPanel();
JLabel jLabel1 = new JLabel();
JLabel jLabel2 = new JLabel();
JLabel jLabel3 = new JLabel();
FontChooser fontChooser1 = new FontChooser();
JFileChooser jFileChooser1 = new JFileChooser();
String currentFileName = null;
boolean motified = false;
Document document1;
PrinterJob ptr = PrinterJob.getPrinterJob();
Toolkit tk = Toolkit.getDefaultToolkit();
ImageIcon newfile = new ImageIcon("images/snew.gif");
ImageIcon openfile = new ImageIcon("images/sopen.GIF");
ImageIcon save = new ImageIcon("images/ssave.gif");
ImageIcon cut = new ImageIcon("images/scut.gif");
ImageIcon paste = new ImageIcon("images/spaste.gif");
ImageIcon exit = new ImageIcon("images/sexit.gif");
ImageIcon copy = new ImageIcon("images/scopy.gif");
ImageIcon about = new ImageIcon("images/sabout.gif");
ImageIcon print = new ImageIcon("images/sprint.gif");
ImageIcon title = new ImageIcon("images/title.png");
ImageIcon delete=new ImageIcon("images/sdelete.gif");
BorderLayout borderLayout1 = new BorderLayout();
JPopupMenu jPopupMenu1 = new JPopupMenu();
GridBagLayout gridBagLayout1 = new GridBagLayout();
JMenuItem jMenuItem16 = new JMenuItem();
JMenuItem jMenuItem17 = new JMenuItem();
JMenuItem jMenuItem18 = new JMenuItem();
JMenuItem jMenuItem19 = new JMenuItem();
XYLayout xYLayout1 = new XYLayout();
// GraphicsEnvironment ge=GraphicsEnvironment.getLocalGraphicsEnvironment();
//Construct the frame
//初始化框架
public Frame1() {
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
try {
jbInit();
}
catch (Exception e) {
e.printStackTrace();
}
}
//Component initialization
//组件初始化
private void jbInit() throws Exception {
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setForeground(Color.black);
this.setResizable(false);
contentPane = (JPanel)this.getContentPane();
document1 = jTextArea1.getDocument();
contentPane.setLayout(gridBagLayout1);
this.setSize(new Dimension(706, 596));
this.setTitle("钦钦记事本 - [未保存]");
jMenuFile.setText("文件");
jMenuFileExit.setHorizontalTextPosition(SwingConstants.TRAILING);
jMenuFileExit.setIcon(newfile);
jMenuFileExit.setText("新建");
jMenuFileExit.addActionListener(new Frame1_jMenuFileExit_ActionAdapter(this));
jMenuHelp.setText("编辑");
jMenuHelpAbout.setEnabled(true);
jMenuHelpAbout.setIcon(cut);
jMenuHelpAbout.setText("剪切");
jMenuHelpAbout.addActionListener(new Frame1_jMenuHelpAbout_ActionAdapter(this));
jPanel1.setLayout(borderLayout1);
jTextArea1.setFont(new java.awt.Font("Dialog", 0, 14));
jTextArea1.setDocument(document1);
jTextArea1.setText("");
jTextArea1.addMouseListener(new Frame1_jTextArea1_mouseAdapter(this));
jMenuItem1.setIcon(openfile);
jMenuItem1.setText("打开");
jMenuItem1.addActionListener(new Frame1_jMenuItem1_actionAdapter(this));
jMenuItem2.setIcon(save);
jMenuItem2.setText("保存");
jMenuItem2.addActionListener(new Frame1_jMenuItem2_actionAdapter(this));
jMenuItem3.setIcon(save);
jMenuItem3.setText("另存为");
jMenuItem3.addActionListener(new Frame1_jMenuItem3_actionAdapter(this));
jMenuItem4.setIcon(exit);
jMenuItem4.setText("退出");
jMenuItem4.addActionListener(new Frame1_jMenuItem4_actionAdapter(this));
jMenuItem5.setEnabled(true);
jMenuItem5.setIcon(copy);
jMenuItem5.setText("复制");
jMenuItem5.addActionListener(new Frame1_jMenuItem5_actionAdapter(this));
jMenuItem6.setIcon(paste);
jMenuItem6.setText("粘贴");
jMenuItem6.addActionListener(new Frame1_jMenuItem6_actionAdapter(this));
jMenu1.setText("格式");
jMenuItem7.setText("字体");
jMenuItem7.addActionListener(new Frame1_jMenuItem7_actionAdapter(this));
jMenuItem9.setText("字体颜色");
jMenuItem9.addActionListener(new Frame1_jMenuItem9_actionAdapter(this));
jMenuItem10.setText("背景颜色");
jMenuItem10.addActionListener(new Frame1_jMenuItem10_actionAdapter(this));
jMenu2.setText("帮助");
jMenuItem11.setIcon(about);
jMenuItem11.setText("关于");
jMenuItem11.addActionListener(new Frame1_jMenuItem11_actionAdapter(this));
fontChooser1.setFrame(this);
fontChooser1.setTitle("字体");
document1.addDocumentListener(new Frame1_document1_documentAdapter(this));
jLabel1.setFont(new java.awt.Font("宋体", 0, 13));
jLabel1.setForeground(UIManager.getColor("ToolBar.dockingForeground"));
jLabel1.setHorizontalTextPosition(SwingConstants.TRAILING);
jLabel1.setText("状态: 未保存!");
jLabel2.setFont(new java.awt.Font("宋体", 0, 13));
jLabel2.setForeground(Color.blue);
jLabel2.setText("程序制作: Design By 谢飞");
jScrollPane1.setVerticalScrollBarPolicy(JScrollPane.
VERTICAL_SCROLLBAR_AS_NEEDED);
jScrollPane1.setAutoscrolls(true);
jScrollPane1.setToolTipText("");
jLabel3.setFont(new java.awt.Font("宋体", 0, 13));
jLabel3.setForeground(Color.blue);
jLabel3.setText("联系方式:xiefei1316@163.com");
jMenuItem8.setIcon(print);
jMenuItem8.setText("打印");
jMenuItem8.addActionListener(new Frame1_jMenuItem8_actionAdapter(this));
jMenuItem12.setIcon(print);
jMenuItem12.setText("打印设置");
jMenuItem12.addActionListener(new Frame1_jMenuItem12_actionAdapter(this));
jMenuItem13.setIcon(cut);
jMenuItem13.setText("剪切");
jMenuItem13.addActionListener(new Frame1_jMenuItem13_actionAdapter(this));
jMenuItem14.setIcon(copy);
jMenuItem14.setText("复制");
jMenuItem14.addActionListener(new Frame1_jMenuItem14_actionAdapter(this));
jMenuItem15.setIcon(paste);
jMenuItem15.setText("粘贴");
jMenuItem15.addActionListener(new Frame1_jMenuItem15_actionAdapter(this));
jPanel2.setLayout(xYLayout1);
jPopupMenu1.setInvoker(jTextArea1);
jMenuItem16.setIcon(delete);
jMenuItem16.setText("删除");
jMenuItem16.addActionListener(new Frame1_jMenuItem16_actionAdapter(this));
jMenuItem17.setText("全选");
jMenuItem17.addActionListener(new Frame1_jMenuItem17_actionAdapter(this));
jMenuItem18.setIcon(delete);
jMenuItem18.setText("删除");
jMenuItem18.addActionListener(new Frame1_jMenuItem18_actionAdapter(this));
jMenuItem19.setText("全选");
jMenuItem19.addActionListener(new Frame1_jMenuItem19_actionAdapter(this));
contentPane.add(jPanel1, new GridBagConstraints(0, 0, 1, 1, 1.0, 1.0
,GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, -1, 0, 0), 708, 490));
jPanel1.add(jScrollPane1, BorderLayout.CENTER);
contentPane.add(jPanel2, new GridBagConstraints(0, 1, 1, 1, 1.0, 1.0
,GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, new Insets(0, 1, 0, 18), 0, -2));
jScrollPane1.getViewport().add(jTextArea1, null);
jPanel2.add(jLabel1, new XYConstraints(0, 4, 229, 14));
jPanel2.add(jLabel3, new XYConstraints(229, 4, 229, 14));
jPanel2.add(jLabel2, new XYConstraints(502, 0, 229, 23));
jMenuFile.add(jMenuFileExit);
jMenuFile.add(jMenuItem1);
jMenuFile.addSeparator();
jMenuFile.add(jMenuItem2);
jMenuFile.add(jMenuItem3);
jMenuFile.addSeparator();
jMenuFile.add(jMenuItem12);
jMenuFile.add(jMenuItem8);
jMenuFile.addSeparator();
jMenuFile.add(jMenuItem4);
jMenuHelp.add(jMenuHelpAbout);
jMenuHelp.add(jMenuItem5);
jMenuHelp.add(jMenuItem6);
jMenuHelp.add(jMenuItem16);
jMenuHelp.addSeparator();
jMenuHelp.add(jMenuItem17);
jMenuBar1.add(jMenuFile);
jMenuBar1.add(jMenuHelp);
jMenuBar1.add(jMenu1);
jMenuBar1.add(jMenu2);
jMenu1.add(jMenuItem7);
jMenu1.add(jMenuItem9);
jMenu1.add(jMenuItem10);
jMenu2.add(jMenuItem11);
jPopupMenu1.add(jMenuItem13);
jPopupMenu1.add(jMenuItem14);
jPopupMenu1.add(jMenuItem15);
jPopupMenu1.add(jMenuItem18);
jPopupMenu1.addSeparator();
jPopupMenu1.add(jMenuItem19);
jTextArea1.add(jPopupMenu1);
this.setJMenuBar(jMenuBar1);
this.setIconImage(title.getImage());
}
//新建操作
public void jMenuFileExit_actionPerformed(ActionEvent e) {
if (giveUp()) {
jTextArea1.setText("");
currentFileName = null;
this.setTitle("钦钦记事本 - [未保存]");
jLabel1.setText("状态: 未保存!");
motified = false;
}
}
//剪切操作
public void jMenuHelpAbout_actionPerformed(ActionEvent e) {
jTextArea1.cut();
}
//右上角窗口关闭退出操作
protected void processWindowEvent(WindowEvent e) {
super.processWindowEvent(e);
if (e.getID() == WindowEvent.WINDOW_CLOSING) {
jMenuFileExit_actionPerformed(null);
if (giveUp())
System.exit(0);
}
}
//字体选择
void jMenuItem7_actionPerformed(ActionEvent e) {
fontChooser1.setSelectedFont(jTextArea1.getFont());
if (fontChooser1.showDialog())
jTextArea1.setFont(fontChooser1.getSelectedFont());
this.repaint();
jTextArea1.repaint();
}
//前景色
void jMenuItem9_actionPerformed(ActionEvent e) {
Color color =
JColorChooser.showDialog(this, "前景色",
jTextArea1.getForeground());
if (color != null) {
jTextArea1.setForeground(color);
}
this.repaint();
}
//背景色
void jMenuItem10_actionPerformed(ActionEvent e) {
Color color =
JColorChooser.showDialog(this, "背景色",
jTextArea1.getBackground());
if (color != null) {
jTextArea1.setBackground(color);
}
this.repaint();
}
//复制
void jMenuItem5_actionPerformed(ActionEvent e) {
jTextArea1.copy();
}
//粘贴
void jMenuItem6_actionPerformed(ActionEvent e) {
jTextArea1.paste();
}
//打开文件操作
void openFile(String fileName) {
try {
File file = new File(fileName);
int size = (int) file.length();
int chars_read = 0;
FileReader in = new FileReader(file);
char[] data = new char[size];
while (in.ready()) {
chars_read += in.read(data, chars_read, size - chars_read);
}
in.close();
jTextArea1.setText(new String(data, 0, chars_read));
this.currentFileName = fileName;
this.motified = false;
this.setTitle("钦钦记事本 - " + "[" + file.getName() + "]");
jLabel1.setText("状态: 已打开!");
}
catch (IOException e) {
jTextArea1.setText("打开错误!" + fileName);
}
}
//保存文件操作
boolean saveFile() {
if (currentFileName == null)
return saveAsFile();
try {
File file = new File(currentFileName);
FileWriter out = new FileWriter(file);
String text = jTextArea1.getText();
out.write(text);
out.close();
this.motified = false;
this.setTitle("钦钦记事本" + "-" + "[" + file.getName() + "]");
jLabel1.setText("状态: 已保存!");
return true;
}
catch (IOException e) {
}
return false;
}
//另存为操作
boolean saveAsFile() {
if (JFileChooser.APPROVE_OPTION == jFileChooser1.showSaveDialog(this)) {
currentFileName = jFileChooser1.getSelectedFile().getPath();
this.repaint();
return saveFile();
}
else {
this.repaint();
return false;
}
}
//文本改变操作
boolean giveUp() {
if (!motified)
return true;
int temp = JOptionPane.showConfirmDialog(this, "文字已经改变!想保存文件吗?", "警告!",
JOptionPane.YES_NO_CANCEL_OPTION);
switch (temp) {
case JOptionPane.YES_OPTION:
return saveFile();
case JOptionPane.NO_OPTION:
return true;
case JOptionPane.CANCEL_OPTION:
default:
return false;
}
}
//删除
void deleteAll(){
jTextArea1.replaceRange("",jTextArea1.getSelectionStart(),jTextArea1.getSelectionEnd());
}
//文件选择
void jMenuItem1_actionPerformed(ActionEvent e) {
if (!giveUp()) {
return;
}
if (JFileChooser.APPROVE_OPTION ==
jFileChooser1.showOpenDialog(this)) {
openFile
(jFileChooser1.getSelectedFile().getPath());
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -