⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.java

📁 需解压后再执行! 是我的大作业
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Window;
import java.awt.Container;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.awt.print.PrinterJob;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import javax.print.attribute.HashPrintRequestAttributeSet;
import javax.print.attribute.PrintRequestAttributeSet;
import javax.swing.BorderFactory;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JColorChooser;
import javax.swing.JDialog;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JComboBox;
import javax.swing.JPanel;
import javax.swing.JPopupMenu;
import javax.swing.JProgressBar;
import javax.swing.JScrollBar;
import javax.swing.JScrollPane;
import javax.swing.JSpinner;
import javax.swing.JTextField;
import javax.swing.KeyStroke;
import javax.swing.SwingConstants;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import javax.swing.border.Border;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import javax.swing.event.UndoableEditEvent;
import javax.swing.event.UndoableEditListener;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JToolBar;
import javax.swing.JTextArea;
import javax.swing.filechooser.FileFilter;
import javax.swing.undo.UndoManager;
import javax.swing.ProgressMonitorInputStream; 

public class Main  extends JFrame implements ActionListener,KeyListener,MouseListener,UndoableEditListener,WindowListener{    
    JMenuBar barMenuBar;
    public static int number;
    JMenu fileMenu,editMenu,viewMenu,toolMenu,appearanceMenu,helpMenu;
    JMenuItem newMenuItem,openMenuItem,saveMenuItem,assaveMenuItem,printMenuItem,exitMenuItem,                                //fileMenu;
    redoMenuItem,undoMenuItem,cutMenuItem,copyMenuItem,pasteMenuItem,findMenuItem,selectallMenuItem,                          //editMenu;
    redoMenuItem2,undoMenuItem2,cutMenuItem2,copyMenuItem2,pasteMenuItem2,findMenuItem2,selectallMenuItem2,linewrapMenuItem2, //viewMenu;
    javaappearanceMenuItem,unixappearanceMenuItem,windowsappearanceMenuItem,                                                  //appearanceMenu;
    aboutMenuItem,showtimeMenuItem,                                                                                           //helpMenu;
    fontMenuItem;
    JButton newButton,openButton,saveButton,assaveButton,printButton,exitButton,redoButton,undoButton,cutButton,copyButton,pasteButton,findButton,
    selectallButton,linewrapButton,javaappearanceButton,unixappearanceButton,windowsappearanceButton,aboutButton,showtimeButton;
    JCheckBoxMenuItem linewrapMenuItem,showtoolbarMenuItem;
    UndoManager undoManger;
    JFileChooser chooser;
    JToolBar bar1;
    JLabel jl;
    JPopupMenu textPopup;
    JScrollPane scrollpane;
    private BufferedReader in;
    private PrintWriter write;
    JTextArea text;
    boolean textAction=false;    
    PrintRequestAttributeSet attributes;
    public Main() {
        super.setTitle("My JAVA NOTEPAD For The World");
        setSize(880,400);
        Dimension screensize = Toolkit.getDefaultToolkit().getScreenSize();
        int px = (screensize.width - this.getWidth())/2;
        int py = (screensize.height - this.getHeight())/2;        
        setLocation(px,py);
        ImageIcon imageicon = new ImageIcon("image" + File.separatorChar + "3.jpg");
        Image image = imageicon.getImage();
        showPanel showpanel = new showPanel(image);
        showpanel.setSize(300,300);
        px = (screensize.width - showpanel.getWidth())/2;
        py = (screensize.height -showpanel.getHeight())/2;        
        showpanel.setLocation(px,py);
        Window window = new Window(this);
        window.setLayout(new BorderLayout());
        window.add(showpanel,BorderLayout.CENTER);
        JProgressBar pb = new JProgressBar(); 
        pb.setMinimum(0);pb.setMaximum(100);
        pb.setStringPainted(true);
        pb.setString("0%");pb.setValue(0);
        try {
            Thread.currentThread().sleep(31);
        } catch (InterruptedException ex) {
            ex.printStackTrace();
        }
        window.add(pb,BorderLayout.SOUTH);        
        window.setSize(300,315);       
        window.setLocation(px,py);
        pb.setString("10%");pb.setValue(10);
         try {
            Thread.currentThread().sleep(31);
        } catch (InterruptedException ex) {
            ex.printStackTrace();
        }
        window.show(true);         
        pb.setValue(0);
        pb.setString("20%");pb.setValue(20);
         try {
            Thread.currentThread().sleep(31);
        } catch (InterruptedException ex) {
            ex.printStackTrace();
        }
        setLayout(new  BorderLayout());
        jl = new JLabel("所在位置:");        
        chooser = new JFileChooser();
        scrollpane = new JScrollPane();
        textPopup = new JPopupMenu();        
        linewrapMenuItem2= new JMenuItem("自动换行");
        redoMenuItem2 = new JMenuItem("重复");       
        undoMenuItem2 = new JMenuItem("撤销");
        pb.setString("30%");pb.setValue(30);
         try {
            Thread.currentThread().sleep(31);
        } catch (InterruptedException ex) {
            ex.printStackTrace();
        }
        cutMenuItem2 = new JMenuItem("剪切");
        copyMenuItem2 = new JMenuItem("复制");
        pasteMenuItem2 = new JMenuItem("粘贴");
        findMenuItem2 = new JMenuItem("查找/替换");
        selectallMenuItem2 = new JMenuItem("全部选择");
        textPopup.add(linewrapMenuItem2);
        textPopup.add(redoMenuItem2);
        textPopup.add(undoMenuItem2);
        textPopup.add(cutMenuItem2);
        textPopup.add(copyMenuItem2);
        textPopup.add(pasteMenuItem2);
        textPopup.add(findMenuItem2);
        textPopup.add(selectallMenuItem2);
        undoManger = new UndoManager();
        Container container=getContentPane();
        pb.setString("40%");pb.setValue(40);
         try {
            Thread.currentThread().sleep(31);
        } catch (InterruptedException ex) {
            ex.printStackTrace();
        }
        container.add(jl,BorderLayout.SOUTH);
        newButton=new EJButton("新建");
        openButton=new EJButton("打开");saveButton=new EJButton("保存");assaveButton=new EJButton("另存");printButton=new EJButton("打印");exitButton=new EJButton("退出");
        redoButton=new EJButton("重做");undoButton=new EJButton("撤销");cutButton=new EJButton("剪切");
        copyButton=new EJButton("复制");pasteButton=new EJButton("粘贴");findButton=new EJButton("查找替换");selectallButton=new EJButton("全选");linewrapButton=new EJButton("换行");javaappearanceButton=new EJButton("j风格");unixappearanceButton=new EJButton("unix风格");
        windowsappearanceButton=new EJButton("win风格");aboutButton=new EJButton("关于");showtimeButton=new EJButton("时间");
        bar1=new JToolBar("附件工具栏");
        bar1.setBorder(BorderFactory.createTitledBorder("工具栏"));
        bar1.add(newButton);bar1.add(openButton);bar1.add(saveButton);bar1.add(assaveButton);bar1.add(printButton);bar1.add(exitButton);bar1.add(redoButton);bar1.add(undoButton);bar1.add(cutButton);
        bar1.add(copyButton);bar1.add(pasteButton);bar1.add(findButton);bar1.add(selectallButton);bar1.add(linewrapButton);bar1.add(javaappearanceButton);bar1.add(unixappearanceButton);bar1.add(windowsappearanceButton);bar1.add(aboutButton);bar1.add(showtimeButton);      
        text=new JTextArea(100,200);
        text.requestFocus(true);
        text.setToolTipText("Write down your words here");
        text.getDocument().addUndoableEditListener(this);
        text.addMouseListener(this);
        text.addKeyListener(this);
        JScrollBar sb =new JScrollBar();
        scrollpane.getViewport().add(text);
        container.add(scrollpane,BorderLayout.CENTER);
        barMenuBar=new JMenuBar();
        fileMenu=new JMenu("文件(F)");
        fileMenu.setMnemonic('F');
        newMenuItem=new JMenuItem("新建");
        newMenuItem.setMnemonic('E');
        newMenuItem.addActionListener(Main.this);
        newMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_MASK));
        openMenuItem=new JMenuItem("打开");
        openMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_MASK));
        saveMenuItem=new JMenuItem("保存");
        saveMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK));
        pb.setString("50%");pb.setValue(50);
         try {
            Thread.currentThread().sleep(31);
        } catch (InterruptedException ex) {
            ex.printStackTrace();
        }
        assaveMenuItem=new JMenuItem("另存为");
        assaveMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.CTRL_MASK));
        printMenuItem=new JMenuItem("打印");
        printMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,InputEvent.CTRL_MASK));
        exitMenuItem=new JMenuItem("退出");
        exitMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E,InputEvent.CTRL_MASK));
        fileMenu.add(newMenuItem);
        fileMenu.add(openMenuItem);
        fileMenu.add(saveMenuItem);
        fileMenu.add(assaveMenuItem);
        fileMenu.add(printMenuItem);
        fileMenu.add(exitMenuItem);   
        barMenuBar.add(fileMenu); 
        editMenu=new JMenu("编辑(E)");
        editMenu.setMnemonic('E');
        redoMenuItem=new JMenuItem("重做");
        redoMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.CTRL_MASK));
        undoMenuItem=new JMenuItem("撤销");
        undoMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_U,InputEvent.CTRL_MASK));
        cutMenuItem=new JMenuItem("剪切");
        cutMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Z,InputEvent.CTRL_MASK));
        copyMenuItem=new JMenuItem("复制");
        copyMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK));
        pb.setString("60%");pb.setValue(60);
         try {
            Thread.currentThread().sleep(31);
        } catch (InterruptedException ex) {
            ex.printStackTrace();
        }
        pasteMenuItem=new JMenuItem("粘贴");
        pasteMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,InputEvent.CTRL_MASK));
        findMenuItem=new JMenuItem("查找/替换");
        findMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F,InputEvent.CTRL_MASK));
        selectallMenuItem=new JMenuItem("全部选择");
        selectallMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_B,InputEvent.CTRL_MASK));
        editMenu.add(redoMenuItem);
        editMenu.add(undoMenuItem);
        editMenu.add(cutMenuItem);
        editMenu.add(copyMenuItem);
        editMenu.add(pasteMenuItem);
        editMenu.add(findMenuItem);
        editMenu.add(selectallMenuItem);
        newButton.addActionListener(this);
        openButton.addActionListener(this);
        saveButton.addActionListener(this);
        assaveButton.addActionListener(this);
        redoButton.addActionListener(this);
        undoButton.addActionListener(this);
        cutButton.addActionListener(this);
        copyButton.addActionListener(this);
        pasteButton.addActionListener(this);
        pb.setString("70%");pb.setValue(70);
         try {
            Thread.currentThread().sleep(31);
        } catch (InterruptedException ex) {
            ex.printStackTrace();
        }
        findButton.addActionListener(this);
        selectallButton.addActionListener(this);
        aboutButton.addActionListener(this);
        showtimeButton.addActionListener(this);
        printButton.addActionListener(this);
        exitButton.addActionListener(this);
        linewrapButton.addActionListener(this);
        javaappearanceButton.addActionListener(this);
        unixappearanceButton.addActionListener(this);
        windowsappearanceButton.addActionListener(this);
        barMenuBar.add(editMenu);
        viewMenu=new JMenu("视图(V)");
        viewMenu.setMnemonic('V');
        linewrapMenuItem=new JCheckBoxMenuItem("自动换行");
        linewrapMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,InputEvent.CTRL_MASK));
        linewrapMenuItem.addActionListener(this);
        showtoolbarMenuItem= new JCheckBoxMenuItem("是否显示工具栏");
        showtoolbarMenuItem.setSelected(true);
        showtoolbarMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Y,InputEvent.CTRL_MASK));
        showtoolbarMenuItem.addActionListener(this);
        viewMenu.add(linewrapMenuItem);
        viewMenu.add(showtoolbarMenuItem);
        barMenuBar.add(viewMenu); 
        toolMenu=new JMenu("工具(T)");
        toolMenu.setMnemonic('T');
        fontMenuItem = new JMenuItem("字体/背景颜色"); 
        fontMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_8,InputEvent.CTRL_MASK));
        fontMenuItem.addActionListener(this);
        toolMenu.add(fontMenuItem);
        barMenuBar.add(toolMenu);
        appearanceMenu=new JMenu("风格(S)");
        appearanceMenu.setMnemonic('S');
        javaappearanceMenuItem=new JMenuItem("JAVA");//,unixappearanceMenuItem,windowsappearanceMenuItem,
        javaappearanceMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_L,InputEvent.CTRL_MASK));
        unixappearanceMenuItem=new JMenuItem("UNIX");
        unixappearanceMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_K,InputEvent.CTRL_MASK));
        windowsappearanceMenuItem=new JMenuItem("WINDOW");
        windowsappearanceMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_J,InputEvent.CTRL_MASK));
        showtimeMenuItem=new JMenuItem("插入时间");
        showtimeMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_D,InputEvent.CTRL_MASK));
        appearanceMenu.add(javaappearanceMenuItem);
        appearanceMenu.add(windowsappearanceMenuItem);
        appearanceMenu.add(unixappearanceMenuItem);
        pb.setString("80%");pb.setValue(80);
         try {
            Thread.currentThread().sleep(31);
        } catch (InterruptedException ex) {
            ex.printStackTrace();
        }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -