import java.awt.*; //这里主要是使用基础图形和 eventqueue
import java.awt.event.*;
import java.util.*;
import java.io.*; //文件流。(这里使用字符流,以及异常)
import javax.swing.*; //非基础类 绘图和交互等。 swing 比awt 强大很多倍。
import javax.swing.filechooser.*; // 文件选择器
import javax.swing.filechooser.FileFilter; //里面有一个可以判断是否应该接受一个文件
import static javax.swing.JFrame.*;
public class Main {
public static void main(String[] args){
Frame frame = new Frame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //基础的一些构造 frame
frame.setVisible(false);
}
}
class Frame extends JFrame {
public Frame() {
JFrame window1=new JFrame();//窗口
JMenuBar menubar;//菜单条
JMenu menu1,menu2,menu3,menu4,menu5,item22;//菜单
JMenuItem item11,item12,item13,item14,item15;//菜单项
JMenuItem item21,item221,item222;
JMenuItem item31,item32,item33,item34,item35,item36;
JMenuItem item41;
JMenuItem item51;
menubar=new JMenuBar();
menu1=new JMenu("文件");
menu2=new JMenu("文本");
menu3=new JMenu("视窗");
menu4=new JMenu("辅助");
menu5=new JMenu("帮助");
item11=new JMenuItem("打开",new ImageIcon("a.gif"));
item12=new JMenuItem("另存为",new ImageIcon("b.gif"));
item13=new JMenuItem("保存",new ImageIcon("c.gif"));
item14=new JMenuItem("重命名",new ImageIcon("d.gif"));
item15=new JMenuItem("更多",new ImageIcon("e.gif"));
item21=new JMenuItem("清空当前",new ImageIcon("f.gif"));
item31=new JMenuItem("显示背景",new ImageIcon("k.gif"));
item32=new JMenuItem("左半屏",new ImageIcon("l.gif"));
item33=new JMenuItem("右半屏",new ImageIcon("m.gif"));
item34=new JMenuItem("最大化",new ImageIcon("n.gif"));
item35=new JMenuItem("最小化",new ImageIcon("o.gif"));
item36=new JMenuItem("最初界面",new ImageIcon("p.gif"));
item41=new JMenuItem("添加日期",new ImageIcon("r.gif"));
item51=new JMenuItem("关于我",new ImageIcon("s.gif"));
item11.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_MASK));
item12.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_MASK));
item13.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK));
item14.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E,InputEvent.CTRL_MASK));
item21.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_W,InputEvent.CTRL_MASK));
item31.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_B,InputEvent.CTRL_MASK));
item32.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_L,InputEvent.CTRL_MASK));
item33.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_R,InputEvent.CTRL_MASK));
item34.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Z,InputEvent.CTRL_MASK));
item35.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_I,InputEvent.CTRL_MASK));
menu1.add(item11);
menu1.add(item12);
menu1.add(item13);
menu1.add(item14);
menu1.add(item15);
menu2.add(item21);
menu3.add(item31);
menu3.add(item32);
menu3.add(item33);
menu3.add(item34);
menu3.add(item35);
menu3.add(item36);
menu4.add(item41);
menu5.add(item51);
menubar.add(menu1);
menubar.add(menu2);
menubar.add(menu3);
menubar.add(menu4);
menubar.add(menu5);
window1.setJMenuBar(menubar);
JPanel panel1 = new JPanel();//面板
textArea1 = new JTextArea(null, 8, 40);//文本框
textArea1.setLineWrap(true);
textArea1.setText("");
textArea1.setBackground(new Color(245, 255, 250));
JFrame frame = new JFrame("zxy的記事本");
Dimension SCREEN = Toolkit.getDefaultToolkit().getScreenSize();
int WIDTH = (int) SCREEN.getWidth();
int HEIGHT = (int) SCREEN.getHeight();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocation(WIDTH/4, HEIGHT/4);
frame.setSize(600, 400);
frame.setJMenuBar(menubar); //向frame加入菜单栏
frame.getContentPane().add(panel1);
frame.getContentPane().add(textArea1, BorderLayout.CENTER);
frame.setVisible(true);
item11.addActionListener(new FileOpenListener());
chooser = new JFileChooser(); //创建一个事件监听器
FileNameExtensionFilter filter = new FileNameExtensionFilter("文本文件", "txt");//设置filechooser。文件过滤器只选择txt类
chooser.setFileFilter(filter);
chooser.setFileView(new FileIconView(filter, null));//小图标使用默认图标
//******************************* 另存为 部分 设置他的文件对话框 **************************************************
item12.addActionListener(new SaveAnotherListener());
FileNameExtensionFilter filter2 = new FileNameExtensionFilter("文本文件", "txt");//设置filechooser。文件过滤器只选择txt类
chooser.setFileFilter(filter2);
chooser.setFileView(new FileIconView(filter2, null));
//********************************** 单纯 保存部分 ***************************************
item13.addActionListener(new SaveListener());
//********************************** 重命名 ***************************************
item14.addActionListener(new Renameone());
FileNameExtensionFilter filter3 = new FileNameExtensionFilter("文本文件", "txt");//设置filechooser。文件过滤器只选择txt类
chooser.setFileFilter(filter3);
chooser.setFileView(new FileIconView(filter3, null));
//********************************** 文本 清空 ***************************************
item21.addActionListener(new Clearit());
//********************************************* 视窗 改变颜色 *********************************************************
item31.addActionListener(new ChangeColor());
//******************************************** 辅助 ***************************************************************
menu4.addActionListener(new addtimeone());
//**************************************** 单纯 帮助 ***************************************
menu5.addActionListener(new HelpListener());
}
// ***********************************************打开文件**************************************
String name; //写在内部类外面 ,储存被选择文件的路径。
private class FileOpenListener implements ActionListener { //时间响应起器(实现接口)
public void actionPerformed(ActionEvent event) {
chooser.setCurrentDirectory(new File("/Users/frankdura/Desktop"));//默认的文件打开路径.否则为自己的文件夹
int result = chooser.showOpenDialog(Frame.this); //显示文件选择对话框
if (result == JFileChooser.APPROVE_OPTION) {
name = chooser.getSelectedFile().getPath();
File dataFile = new File(name);
System.out.print(name);
try {
FileReader fr = new FileReader(dataFile); //字符流
BufferedReader br = new BufferedReader(fr); //处理流 (缓冲一下)
String content;
while ((content = br.readLine()) != null) {
textArea1.append(content + "\n");
}
br.close();
fr.close();
} catch (FileNotFoundException e) {
System.out.println("找不到文件!原因如下:" + e.getMessage());
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
// ***********************************************保存********************************************
private class SaveListener implements ActionListener {
public void actionPerformed(ActionEvent event) {
FileWriter fr;
BufferedWriter br;
try {
if(name == null){
JFrame dialog2 = new JFrame();
cannotsave cannot = new cannotsave();
}
fr = new FileWriter(name);
br = new BufferedWriter(fr);
br.write(textArea1.getText());
br.flush();
br.close();
fr.close();
} catch (FileNotFoundException e) {
System.out.println("找不到文件!原因如下:");
} catch (IOException e) {
e.printStackTrace();
}
}
}
// ***********************************************另存为********************************************
private class SaveAnotherListener implements ActionListener {
public void actionPerformed(ActionEvent event) {
chooser.setCurrentDirectory(new File("/Users/frankdura/Desktop"));//默认的文件打开路径.否则为自己的文件夹
int result = chooser.showSaveDialog(Frame.this); //显示文件选择对话框
if (result == JFileChooser.APPROVE_OPTION) {
String name = chooser.getSelectedFile().getPath();
File dataFile = new File(name);
FileWriter fr;
BufferedWriter br;
try {
fr = new FileWriter(name);
br = new BufferedWriter(fr);
br.write(textArea1.getText());
br.flush();
br.close();
fr.close();
} catch (FileNotFoundException e) {
System.out.println("对不起,保存失败。原因如下:" + e.getMessage());
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
//********************************************************重命名~*********************************
private class Renameone implements ActionListener {
public void actionPerformed(ActionEvent event) {
chooser.setCurrentDirectory(new File("/Users/frankdura/Desktop"));//默认的文件打开路径.否则为自己的文件夹
int result = chooser.showOpenDialog(Frame.this); //显示文件选择对话框
if (result == JFileChooser.APPROVE_OPTION) {
String name = chooser.getSelectedFile().getPath();
File dataFile = chooser.getSelectedFile();
String nameone = "新的名字.txt";
dataFile.renameTo(new File(nameone));
}
}
}
//************************************* 文本 清空 *************************************************
private class Clearit implements ActionListener{
public void actionPerformed(ActionEvent event){
textArea1.setText(null);
}
}
//************************************* 视窗 色彩 **************************************************
private class ChangeColor implements ActionListener {
public void actionPerformed(ActionEvent event){
Color defaultColor = getBackground();//获取背景色
Color selected = JColorChooser.showDialog(Frame.this,"设置显示背景色",defaultColor); //jcolorchooser
if(selected != null)
{
textArea1.setBackground(selected);
}
}
}
//*********************************** 辅助当前时间 ********************************************
private class addtimeone implements ActionListener {
public void actionPerformed(ActionEvent event) {
}
}
// ********************************** 帮助栏关于我们 ********************************************
private class HelpListener implements ActionListener {
public void actionPerformed(ActionEvent event) {
}
}
//******************************
private class FileIconView extends FileView {//获取文件图标
public FileIconView(FileFilter aFilter, Icon anIcon) {
filter = aFilter;
icon = anIcon;
}
public Icon getIcon(File f) {
if (!f.isDirectory() && filter.accept(f)) {
return icon;
} else {
return null;
}
}
private FileFilter filter,filer2,filter3;
private Icon icon,icon2;
}
JTextArea textArea1;
private JFileChooser chooser;
}
java记事本
最新推荐文章于 2023-07-02 15:58:48 发布