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

📄 testmain.java

📁 一个用Java实现的记录本。用用看看 一个用Java实现的记录本。
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package gnu.wp;

import javax.swing.*;
import java.awt.*;
import java.awt.List;
import java.awt.event.*;
import java.io.*;
import javax.swing.event.*;
import java.util.*;
import java.awt.print.*;
import javax.print.*;
import javax.swing.undo.*;
import javax.print.attribute.*;
import javax.print.attribute.standard.MediaSizeName;
import javax.swing.undo.UndoManager;
import javax.swing.border.TitledBorder;
import java.text.*;

public class testMain{
	public static void main(String [] arg){
		try{ 
    		//设置个性外观
    		//UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
    		//UIManager.setLookAndFeel("com.sun.java.swing.plaf.motif.MotifLookAndFeel");
    		UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsClassicLookAndFeel");	
    	}catch(Exception e){  		
    	}
		new testFrame();
	}
}

class testFrame{
	public static boolean bool=false;
	public static JTextArea jta;
	public static JFrame f;
	public static UndoManager  um;
	public static JMenuItem editItem1,editItem2,editItem3,editItem5,editItem6; 
	//public static boolean bool=true;
	public testFrame(){
		f = new JFrame();
		f.setTitle("无标题 - 记事本");
		//创建菜单栏对象
		JMenuBar menuBar = new JMenuBar();
		//创建菜单对象
		JMenu fileJMenu = new JMenu("文件 (F)");
		JMenu editJMenu = new JMenu("编辑 (E)");
		editJMenu.addMenuListener(new bjEvent());
		JMenu formatJMenu = new JMenu("格式 (O)");
		JMenu lookJMenu = new JMenu("查看 (V)");
		JMenu helpJMenu = new JMenu("帮助 (H)");

		//创建多行文本对象
		jta = new JTextArea();
		um=new UndoManager();
		jta.getDocument().addUndoableEditListener(testFrame.um);
		//创建子菜单对象
		JMenuItem fileItem1 = new JMenuItem("新建(N)");
		JMenuItem fileItem2 = new JMenuItem("打开(O)");
		JMenuItem fileItem3= new JMenuItem("保存(S)");
		JMenuItem fileItem4= new JMenuItem("另存为(A)");
		JMenuItem fileItem5= new JMenuItem("页面设置(U)");
		JMenuItem fileItem6= new JMenuItem("打印(P)");
		JMenuItem fileItem7= new JMenuItem("退出(X)");
		//添加菜单列表
		fileJMenu.add(fileItem1);
		fileJMenu.add(fileItem2);
		fileJMenu.add(fileItem3);
		fileJMenu.add(fileItem4);
		fileJMenu.addSeparator();
		fileJMenu.add(fileItem5);
		fileJMenu.add(fileItem6);
		fileJMenu.addSeparator();
		fileJMenu.add(fileItem7);
		
		fileItem1.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_MASK));
		fileItem2.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_MASK));
		fileItem3.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK));
		fileItem6.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,InputEvent.CTRL_MASK));
		
		testFileItem tfi=new testFileItem();
		fileItem1.addActionListener(tfi);
		fileItem2.addActionListener(tfi);
		fileItem3.addActionListener(tfi);
		fileItem4.addActionListener(tfi);
		fileItem5.addActionListener(tfi);
		fileItem6.addActionListener(tfi);
		fileItem7.addActionListener(tfi);	
		//创建子菜单对象
		editItem1 = new JMenuItem("撤销(U)");
		editItem2 = new JMenuItem("剪切(T)");
		editItem3= new JMenuItem("复制(C)");
		JMenuItem editItem4= new JMenuItem("粘贴(P)");
		editItem5= new JMenuItem("删除(L)");
		editItem6= new JMenuItem("查找(F)");
		JMenuItem editItem8= new JMenuItem("替换(R)");
		JMenuItem editItem10= new JMenuItem("全选(A)");
		JMenuItem editItem11= new JMenuItem("时间/日期(D)");
		//添加菜单列表
		editJMenu.add(editItem1);
		editJMenu.addSeparator();
		editJMenu.add(editItem2);
		editJMenu.add(editItem3);
		editJMenu.add(editItem4);
		editJMenu.add(editItem5);
		editJMenu.addSeparator();
		editJMenu.add(editItem6);
		editJMenu.add(editItem8);
		editJMenu.addSeparator();
		editJMenu.add(editItem10);
		editJMenu.add(editItem11);
		
		editItem1.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Z,InputEvent.CTRL_MASK));
		editItem2.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.CTRL_MASK));
		editItem3.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK));
		editItem4.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,InputEvent.CTRL_MASK));
		editItem5.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_DELETE,0));
		editItem6.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F,InputEvent.CTRL_MASK));
		editItem8.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_H,InputEvent.CTRL_MASK));
		editItem10.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.CTRL_MASK));
		editItem11.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F5,0));		
		
		testEditItem tei=new testEditItem();
		editItem1.addActionListener(tei);
		editItem2.addActionListener(tei);
		editItem3.addActionListener(tei);
		editItem4.addActionListener(tei);
		editItem5.addActionListener(tei);
		editItem6.addActionListener(tei);
		editItem8.addActionListener(tei);
		editItem10.addActionListener(tei);
		editItem11.addActionListener(tei);
		//创建子菜单对象
		JMenuItem formatItem1= new JMenuItem("自动换行(W)");
		JMenuItem formatItem2= new JMenuItem("字体(F)");			
		//添加菜单列表
		formatJMenu.add(formatItem1);
		formatJMenu.addSeparator();
		formatJMenu.add(formatItem2);
		formatItem1.addActionListener(new testFormatItem());
		formatItem2.addActionListener(new testFormatItem());		
		//创建子菜单对象
		JMenuItem lookItem1 = new JMenuItem("状态栏(S)");
		//添加菜单列表
		lookJMenu.add(lookItem1);
		lookItem1.addActionListener(new testFormatItem());		
		//创建子菜单对象
		JMenuItem helpItem1 = new JMenuItem("帮助主题(H)");
		JMenuItem helpItem2 = new JMenuItem("关于记事本(A)");
		//添加菜单列表
		helpJMenu.add(helpItem1);
		helpJMenu.addSeparator();
		helpJMenu.add(helpItem2);
		
		helpItem1.addActionListener(new testHelpItem());
		helpItem2.addActionListener(new testHelpItem());
		//添加菜单
		menuBar.add(fileJMenu);
		menuBar.add(editJMenu);
		menuBar.add(formatJMenu);
		menuBar.add(lookJMenu);
		menuBar.add(helpJMenu);
		//添加菜单栏
		f.setJMenuBar(menuBar);
		//添加多行文本
		f.setLayout(new BorderLayout());
		//f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		f.add(new JScrollPane(jta), BorderLayout.CENTER);
		f.addWindowListener(new testActionListener());
		//设置窗体大小
		f.setSize(700,600);
		//设置窗体位子
		f.setLocation(100,100);
		//设置窗体是否可见	
		f.setVisible(true);	
	}
}
class bjEvent implements MenuListener{
	public void menuDeselected(MenuEvent e){}
	public void menuCanceled(MenuEvent e){}
		public void menuSelected(MenuEvent e){
			if(testFrame.jta.getText().equals("")){
				testFrame.editItem1.setEnabled(false);
				testFrame.editItem2.setEnabled(false);
				testFrame.editItem3.setEnabled(false);
				testFrame.editItem5.setEnabled(false);
				testFrame.editItem6.setEnabled(false);
			}else{
				testFrame.editItem1.setEnabled(true);
				testFrame.editItem2.setEnabled(true);
				testFrame.editItem3.setEnabled(true);
				testFrame.editItem5.setEnabled(true);
				testFrame.editItem6.setEnabled(true);
			}
		}
}
class testActionListener extends  WindowAdapter{
	public void windowClosing(WindowEvent e){
		String s = testFrame.f.getTitle();
		if(testFrame.jta.getText().equals("")){
			System.exit(0);
		}else{
			int i = JOptionPane.showConfirmDialog(null,"文件  " + s + "  的文字已经改变. \n 想保存文件吗 ?","记事本",JOptionPane.YES_NO_CANCEL_OPTION);
			switch (i){
				case 0 :
					new testFileSave();	
					break;
				case 1 :
					System.exit(0);
					break;
			}
		}		
	}
}
class testHelpItem implements ActionListener{
	public void actionPerformed(ActionEvent e){
		if(e.getActionCommand().equals("帮助主题(H)")){
			try{
				Runtime r = Runtime.getRuntime();
				r.exec("cmd.exe /c start notepad.chm");
			}catch(IOException ee){
			}
		}else if(e.getActionCommand().equals("关于记事本(A)")){
			JOptionPane.showOptionDialog(null, 
			"Java(R) 记事本\n" + 
			"版本 6.0\n" + 
			"版权所有 (C) 2008-2028\n" +
			"本产品授权给:\n"+
			"All Uers", 
			"关于 记事本", 
			JOptionPane.DEFAULT_OPTION, 
			JOptionPane.INFORMATION_MESSAGE, 
			null, null, null); 
		}	
	}		
}
class testFileSave{
	public testFileSave(){
		FileDialog fd = new FileDialog(new Frame(),"保存文件",FileDialog.SAVE);
		fd.setVisible(true);
		String fileName = fd.getDirectory() + fd.getFile();
		testFile tf =new testFile();
		testFrame.f.setTitle(fd.getFile());
		tf.testSaveFile(fileName);					
	}
}
class testFileItem implements ActionListener{
	public static String fileName;
	public void actionPerformed(ActionEvent e){
		if(e.getActionCommand().equals("新建(N)")){
			if(testFrame.jta.getText().equals("")){
						testFrame.jta.setText("");
					}else{
						String s = testFrame.f.getTitle();
						int i = JOptionPane.showConfirmDialog(null,"文件  " + s + "  的文字已经改变. \n 想保存文件吗 ?","记事本",JOptionPane.YES_NO_CANCEL_OPTION ,JOptionPane.YES_NO_CANCEL_OPTION);
						if(i == 0){
							new testFileSave();					
						}else if(i == 1){
							testFrame.jta.setText("");
						}else if(i == 2){
						}
					}			
		}else if(e.getActionCommand().equals("打开(O)")){	
			String s = testFrame.f.getTitle();	
			if(!testFrame.jta.getText().equals("")){
				int i = JOptionPane.showConfirmDialog(null,"文件  " + s + "  的文字已经改变. \n 想保存文件吗 ?","记事本",JOptionPane.YES_NO_CANCEL_OPTION ,JOptionPane.YES_NO_CANCEL_OPTION);
				if(i == 0){
					new testFileSave();					
				}else if(i == 1){
					FileDialog fd = new FileDialog(new Frame(),"打开文件",FileDialog.LOAD);
					fd.setVisible(true);
					fileName = fd.getDirectory()+fd.getFile();
					testFrame.f.setTitle(fd.getFile());
					testFile tf =new testFile();
					tf.testOpenFile(fileName);
				}else if(i == 2){
				}
			}else{
					FileDialog fd = new FileDialog(new Frame(),"打开文件",FileDialog.LOAD);
					fd.setVisible(true);
					fileName = fd.getDirectory()+fd.getFile();
					testFrame.f.setTitle(fd.getFile());
					testFile tf =new testFile();
					tf.testOpenFile(fileName);				
			}
		}else if (e.getActionCommand().equals("保存(S)")){
				new testFileSave();	
		}else if (e.getActionCommand().equals("另存为(A)")){
				new testFileSave();	
		}else if (e.getActionCommand().equals("页面设置(U)")){
			PageableText.dayin();
		}else if (e.getActionCommand().equals("打印(P)")){	
			PrinterJob prtMe = PrinterJob.getPrinterJob();	
			try{
		    	prtMe.printDialog();
		    }catch(Exception ew){
		    	}	
		}else if (e.getActionCommand().equals("退出(X)")){
			if(testFrame.jta.getText().equals("")){
				System.exit(0);
			}else{
				String s = testFrame.f.getTitle();
				int i = JOptionPane.showConfirmDialog(null,"文件  " + s + "  的文字已经改变. \n 想保存文件吗 ?","记事本",JOptionPane.YES_NO_CANCEL_OPTION ,JOptionPane.YES_NO_CANCEL_OPTION);
				if(i == 0){
					new testFileSave();				
				}else if(i == 1){
					System.exit(0);
				}
			}			
		}
	}
}
class testFormatItem implements ActionListener{
	public void actionPerformed(ActionEvent e){	
		if(e.getActionCommand().equals("自动换行(W)")){
			if(testFrame.bool==false){
				testFrame.jta.setLineWrap(true);
				testFrame.bool=true;
			}else if(testFrame.bool==true){
				testFrame.jta.setLineWrap(false);
				testFrame.bool=false;
			}		
			System.out.println(testFrame.jta.getColumns());
		}else if(e.getActionCommand().equals("字体(F)")){
			new testFontFrame();
		}else if(e.getActionCommand().equals("状态栏(S)")){
		}
	}		
}
class testEditItem implements ActionListener{
	public static int find_start=0,find_end=0;
	public static JTextField jtf,jt1,jt2;
	public static int f_int=0;
	public static String f_str="";
	public void actionPerformed(ActionEvent e){
		if(e.getActionCommand().equals("撤销(U)")){
			if(testFrame.um.canUndo()){
				testFrame.um.undo();
			}	
		}else if(e.getActionCommand().equals("剪切(T)")){
			testFrame.jta.cut();
		}else if (e.getActionCommand().equals("复制(C)")){
			testFrame.jta.copy();
		}else if (e.getActionCommand().equals("粘贴(P)")){
			testFrame.jta.paste();
		}else if (e.getActionCommand().equals("删除(L)")){
			StringBuffer  tmp = new StringBuffer ( testFrame.jta.getText());//临时存储文本   
		    int start = testFrame.jta.getSelectionStart();  //得到要删除的字符串的起始位置
		    int len = testFrame.jta.getSelectedText().length(); //得到要删除的字符串的长度
		    tmp.delete( start , start+len); ///删除所选中的字符串
		    testFrame.jta.setText(tmp.toString());//用新文本设置原文本 
		}else if (e.getActionCommand().equals("查找(F)")){		
			JDialog jd=new JDialog(testFrame.f,"查找");
			jtf=new JTextField(10);
			JLabel jl=new JLabel("查找内容:");
			JButton jb=new JButton("查找");
			jd.setLayout(new FlowLayout());
			jd.add(jl);
			jd.add(jtf);
			jd.add(jb);
			jd.setSize(300,120);
			jd.setVisible(true);
			jd.setLocation(250,250);
			
			jb.addActionListener(new Myfind());	
		}else if (e.getActionCommand ().equals("替换(R)")){
			testEditItem.find_end=0;
			testEditItem.find_start=0;	
			JFrame jf = new JFrame("替换");
			JLabel jl1 = new JLabel("查找内容(N):");
			JLabel jl2 = new JLabel("替换为(P):");
			jt1 =new JTextField(12);
			jt2 = new JTextField(12);
			JButton jb1 = new JButton("查找下一个");
			JButton jb2 = new JButton("替换");
			JButton jb3 = new JButton("全部替换");

⌨️ 快捷键说明

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