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

📄 frame.java

📁 简单的单词检测程序
💻 JAVA
字号:
package javaIn;

import java.awt.*;
import java.awt.event.*;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import javax.swing.*;
import javax.swing.text.BadLocationException;
import javax.swing.text.DefaultHighlighter;
public class Frame {
  //创建窗体
  JFrame frame = new JFrame("拼写检查程序");
  //获取屏幕大小
  Container content = frame.getContentPane();
  Toolkit kit = frame.getToolkit();
  Dimension wndSize = kit.getScreenSize();
  FileDialog fileDialog;
  ReadDictionary dictionary;
  SaveCheck savecheck;
  Check check;
  File openFile,dictionaryFile;  
  
  //定义菜单
  JMenuBar menubar = new JMenuBar();
  
  JMenu pjFile = new JMenu("文件");
  JMenu pjEditor = new JMenu("编辑");
  JMenu finderror = new JMenu("查错");
  JMenu pjHelp = new JMenu("帮助");
  
  
  JMenuItem pjNew = new JMenuItem("新建");
  JMenuItem pjOpen = new JMenuItem("打开");
  JMenuItem pjSave = new JMenuItem("保存");
  //JMenuItem pjSaveAs = new JMenuItem("另存为");
  JMenuItem pjExit = new JMenuItem("退出");
  
  JMenuItem pjCopy = new JMenuItem("复制");
  JMenuItem pjPaste = new JMenuItem("粘贴");
  JMenuItem pjDelete = new JMenuItem("删除");
  JMenuItem pjCut = new JMenuItem("剪切");
  JMenuItem pjSearch = new JMenuItem("查找");
  JMenuItem pjSelectAll = new JMenuItem("全选");
  
  JMenuItem pjLoad = new JMenuItem("载入字典");
  JMenuItem pjCheck = new JMenuItem("检查");
  JMenuItem pjCheckSave = new JMenuItem("保存检查");
    
  JMenuItem pjAbout = new JMenuItem("关于作者");
  //定义文本域
  JTextArea txtShow1 = new JTextArea(25,wndSize.width/30); 
  JTextArea txtShow2 = new JTextArea("检测结果:\n",5,wndSize.width/30);
  //加滚动条
  JScrollPane txtScrollPane1 = new JScrollPane();
  JScrollPane txtScrollPane2 = new JScrollPane();
public Frame(){ 
        //设置窗体大小
  frame.setBounds(wndSize.width/4, wndSize.height/4, wndSize.width/2, wndSize.height/2);
  //设置布局
  frame.setLayout(new BorderLayout());
  //设置可以关闭窗体
  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  //组合成菜单

  pjFile.add(pjNew);
  pjFile.add(pjOpen);
  pjFile.add(pjSave);
  //pjFile.add(pjSaveAs);
  pjFile.addSeparator();
  pjFile.add(pjExit);
  //pjEditor
  pjEditor.add(pjCopy);
  pjEditor.add(pjPaste);
  pjEditor.add(pjDelete);
  pjEditor.add(pjCut);
  pjEditor.addSeparator();
  pjEditor.add(pjSearch);
  pjEditor.add(pjSelectAll);
  //finderror
  finderror.add(pjLoad);
  finderror.add(pjCheck);
  finderror.add(pjCheckSave);
  //pjHelp
  pjHelp.add(pjAbout);
  
  //组合成为完整的菜单
  menubar.add(pjFile);
  menubar.add(pjEditor);
  menubar.add(finderror);
  menubar.add(pjHelp);
  //给菜单加快捷键
  pjFile.setMnemonic('F'); 
  pjEditor.setMnemonic('E');
  finderror.setMnemonic('D');
  pjHelp.setMnemonic('H');
   
	  pjNew.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_DOWN_MASK));
	  pjOpen.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_DOWN_MASK));
	  pjSave.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_DOWN_MASK));
	  pjExit.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Q,InputEvent.CTRL_DOWN_MASK));
	  
	  pjSearch.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F,InputEvent.CTRL_DOWN_MASK));
	  pjCopy.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_DOWN_MASK));
	  pjPaste.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,InputEvent.CTRL_DOWN_MASK));
	  pjCut.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.CTRL_DOWN_MASK));
	  pjDelete.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_DOWN_MASK));
	  pjSelectAll.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.CTRL_DOWN_MASK));
	  
	  pjAbout.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_G,InputEvent.CTRL_DOWN_MASK));
  //给菜单加事件监听
  	pjNew.addActionListener(new pjNewListener());
  	pjOpen.addActionListener(new pjOpenListener());
  	pjSave.addActionListener(new pjSaveListener());
  	//pjSaveAs.addActionListener(new pjSaveAsListener());
  	pjExit.addActionListener(new pjExitListener());
  	pjSearch.addActionListener(new pjSearchListener());
  	pjCopy.addActionListener(new pjCopyListener());
  	pjPaste.addActionListener(new pjPasteListener());
  	pjDelete.addActionListener(new pjDeleteListener());
  	pjCut.addActionListener(new pjCutListener());
  	pjSelectAll.addActionListener(new pjSelectAllListener());
  	pjLoad.addActionListener(new pjLoadListener());
  	pjCheck.addActionListener(new pjCheckListener());
  	pjCheckSave.addActionListener(new pjCheckSaveListener());
  	pjAbout.addActionListener(new pjAboutListener());
  	//设置滚动条
  	txtScrollPane1.getViewport().add(txtShow1);
  	txtScrollPane1.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
  	txtScrollPane1.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED);
  	//  设置滚动条
  	txtScrollPane2.getViewport().add(txtShow2);
  	txtScrollPane2.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
  	txtScrollPane2.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED);
  	//把组件加到窗体上面
  	frame.add(menubar,BorderLayout.NORTH);
  	frame.add(txtScrollPane1,BorderLayout.CENTER);
  	frame.add(txtScrollPane2,BorderLayout.SOUTH);
  	frame.setVisible(true);
	}

	public static void main(String [] args){
		Frame frame1 = new Frame();
		
	}

//新建
	class pjNewListener implements ActionListener{
		public void actionPerformed(ActionEvent e) {
			txtShow1.setText("");
		}
	}
//打开
	class pjOpenListener implements ActionListener{
		public void actionPerformed(ActionEvent e) {
			//打开文件选择对话框
			JFileChooser jfc = new JFileChooser();
			jfc.showOpenDialog(jfc);  
			//取得打开的文件名称
			
			openFile = jfc.getSelectedFile();
			txtShow1.setText("");
			FileReader fr;
			try {
				fr = new FileReader(openFile);
				BufferedReader br = new BufferedReader(fr);
    
				//读取文件内容
				String str = br.readLine();
				while(str != null){
					txtShow1.append(str + "\n");
					str = br.readLine();
				}
				//关闭文件操作
				br.close();
				fr.close();
    
				} catch (FileNotFoundException e1) {
					e1.printStackTrace();
					System.out.println(e1);
				} catch (IOException e1) {
					e1.printStackTrace();
				}   
		}
	}
//保存
	class pjSaveListener implements ActionListener{
		public void actionPerformed(ActionEvent e) {
        //打开文件保存对话框
			JFileChooser jfc = new JFileChooser();
			jfc.showSaveDialog(jfc);
			//获取文件名称
			File fileName = jfc.getSelectedFile();
			//进行文件的写入操作
			try {
				FileWriter fw = new FileWriter(fileName);
				BufferedWriter bw = new BufferedWriter(fw);
    
				String str = txtShow1.getText();
				bw.write(str);
				bw.close();
				fw.close();
				} catch (IOException e1) {
					System.out.println(e1);
					e1.printStackTrace();
				}  
		}
	}


//退出
	class pjExitListener implements ActionListener{
		public void actionPerformed(ActionEvent e) {
			System.exit(0);
		}
	}
	
//复制
	class pjCopyListener implements ActionListener{
		public void actionPerformed(ActionEvent e) {
			txtShow1.copy();
		}
	}

//粘贴
	class pjPasteListener implements ActionListener{
		public void actionPerformed(ActionEvent e) {
			txtShow1.paste();
		}
	}

//删除
	class pjDeleteListener implements ActionListener{
		public void actionPerformed(ActionEvent e) {
			txtShow1.cut();
		}
	}

//剪切
	class pjCutListener implements ActionListener{
		public void actionPerformed(ActionEvent e) {
         txtShow1.cut();
         }
	}

//查找
	class pjSearchListener implements ActionListener{
		public void actionPerformed(ActionEvent e) {
			JOptionPane joPane = new JOptionPane();
			//取得用户输入的字符串
			String userStr = joPane.showInputDialog(joPane,"请输入要查找的内容","查找",JOptionPane.QUESTION_MESSAGE);

			//把文本域里面的全部内容取出来
			String text = txtShow1.getText();
			System.out.println(text);
			int start = text.indexOf(userStr);
			int end = start + userStr.length();
			txtShow1.getHighlighter().removeAllHighlights();
			try {
				txtShow1.getHighlighter().addHighlight(start,end, DefaultHighlighter.DefaultPainter);
    
			} catch (BadLocationException e1) {
				System.out.println(e1);
				e1.printStackTrace();
			}
         
		}
	}
//全选
	class pjSelectAllListener implements ActionListener{
		public void actionPerformed(ActionEvent e) {   
		txtShow1.selectAll();
		}
	}

//导入
	class pjLoadListener implements ActionListener{
		public void actionPerformed(ActionEvent e){
			JFileChooser jfc = new JFileChooser();
			jfc.showOpenDialog(jfc);  
			//取得打开的文件名称
			dictionaryFile = jfc.getSelectedFile();
			   dictionary=new ReadDictionary(dictionaryFile);
			   if(dictionary!=null)JOptionPane.showMessageDialog(new JFrame(),"导入成功");
		   }
		}
//检查
	class pjCheckListener implements ActionListener{
		public void actionPerformed(ActionEvent e){
			
			if(dictionary!=null&&openFile!=null){
					txtShow2.setText("检测结果:\n");
				   check=new Check(dictionaryFile,openFile,txtShow2);
				}
			   else if(dictionary==null)
				   JOptionPane.showMessageDialog(new JFrame(),"请导入字典文件");
			   else if(openFile==null)
				   JOptionPane.showMessageDialog(new JFrame(),"请打开一个文件");
			   
		}
	}
//保存检测
	class pjCheckSaveListener implements ActionListener{
		public void actionPerformed(ActionEvent e){
			JFileChooser jfc = new JFileChooser();
			jfc.showSaveDialog(jfc);  
			//取得打开的文件名称
			File fileName = jfc.getSelectedFile();
			dictionary=new ReadDictionary(fileName);
			
			if(dictionary!=null&&openFile!=null&&!openFile.getAbsolutePath().equals(fileName.getAbsolutePath()))
				   savecheck=new SaveCheck(dictionaryFile,fileName,openFile);
			   else if(dictionary==null)
				   JOptionPane.showMessageDialog(new JFrame(),"请导入字典文件");
			   else if(openFile==null)
				   JOptionPane.showMessageDialog(new JFrame(),"请打开一个文件");
			   else if(openFile.getAbsolutePath().equals(fileName.getAbsolutePath()))
				   JOptionPane.showMessageDialog(new JFrame(),"请选择正确的文件保存");
		}
	}
//帮助
	
//关于程序
	class pjAboutListener implements ActionListener{
		public void actionPerformed(ActionEvent e) {
			JOptionPane jop = new JOptionPane();
			jop.showMessageDialog(jop,"作者:陈建波\n" +
					"   高灿兴\n" +
					"   欧振锋\n","关于改软件",JOptionPane.INFORMATION_MESSAGE);
        }
	}
}

⌨️ 快捷键说明

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