📄 texteditor.java
字号:
package javazip.editor;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
public class TextEditor extends JFrame {
File file = null;
Color color = Color.red;
public TextEditor() {
this.setTitle("JavaZip文件查看器");
this.setSize(500, 480);
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Dimension frameSize = this.getSize();
this.setLocation( (screenSize.width - frameSize.width) / 2,
(screenSize.height - frameSize.height) / 2);
initTextPane();
initAboutDialog();
initMenu();
this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e)
{
dispose();
}
});
}
public TextEditor(File openFile){
this();
this.file=openFile;
}
private void initTextPane() {
getContentPane().add(new JScrollPane(text));
}
JTextPane text = new JTextPane(); // 这是用来做文本框的
JFileChooser filechooser = new JFileChooser(); // 文件选择框
JColorChooser colorchooser = new JColorChooser();//
JDialog about = new JDialog(this); // 关于对话框
JMenuBar menubar = new JMenuBar();// 菜单
JMenu[] menus = new JMenu[] { new JMenu("文件"), new JMenu("编辑"),
new JMenu("帮助") };
JMenuItem menuitems[][] = new JMenuItem[][] {
{ new JMenuItem("新建"), new JMenuItem("打开"), new JMenuItem("保存"),
new JMenuItem("退出") },
{
new JMenuItem("复制"), new JMenuItem("剪切"), new JMenuItem("粘贴"),
new JMenuItem("颜色") }, { new JMenuItem("关于") } };
private void initMenu() {
for (int i = 0; i < menus.length; i++) {
menubar.add(menus[i]);
for (int j = 0; j < menuitems[i].length; j++) {
menus[i].add(menuitems[i][j]);
menuitems[i][j].addActionListener(action);
}
}
this.setJMenuBar(menubar);
}
ActionListener action = new ActionListener() { // when here
// have not
// wrong:
public void actionPerformed(ActionEvent e) {
JMenuItem mi = (JMenuItem) e.getSource();
String id = mi.getText();
if (id.equals("新建")) {
text.setText("");
file = null;
} else if (id.equals("打开")) {
if (file != null)
filechooser.setSelectedFile(file);
int returnVal = filechooser
.showOpenDialog(TextEditor.this);
if (returnVal == JFileChooser.APPROVE_OPTION) {
file = filechooser.getSelectedFile();
openFile();
}
} else if (id.equals("保存")) {
if (file != null)
filechooser.setSelectedFile(file);
int returnVal = filechooser
.showSaveDialog(TextEditor.this);
if (returnVal == JFileChooser.APPROVE_OPTION) {
file = filechooser.getSelectedFile();
saveFile();
}
} else if (id.equals("退出")) {
TextEditor f = new TextEditor();
int s = JOptionPane.showConfirmDialog(f, "你真的要结束吗", "结束程序",
JOptionPane.YES_NO_CANCEL_OPTION);
if (s == JOptionPane.YES_OPTION)
System.exit(0);
} else if (id.equals("剪切")) {
text.cut();
} else if (id.equals("复制")) {
text.copy();
} else if (id.equals("粘贴")) {
text.paste();
} else if (id.equals("color")) {
color = JColorChooser.showDialog(TextEditor.this, "",
color);
text.setForeground(color);
} else if (id.equals("关于")) {
about.setSize(200, 150);
about.show();
}
}
};
public void saveFile() {
try {
FileWriter fw = new FileWriter(file);
fw.write(text.getText());
fw.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public void openFile() {
try {
FileReader fr = new FileReader(file);
int len = (int) file.length();
char[] buffer = new char[len];
fr.read(buffer, 0, len);
fr.close();
text.setText(new String(buffer));
} catch (Exception e) {
e.printStackTrace();
}
}
private void initAboutDialog() {
about.getContentPane().add(new JLabel("JavaZip:记事本Q1.0"));
about.setModal(true);
about.setSize(200, 100);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -