该小应用是本人学习Java前期制作的程序,可能还有着一些Bug没有修复,敬请谅解!该应用用到了图形化界面、I/O流本地磁盘读取/写入数据、键盘事件、焦点事件、监听事件等知识。该应用拥有功能: file菜单项:打开文件、保存文件、另存为文件、写入反馈文件。 edit菜单项:修改数据、检查中文拼写、检查英文拼写、查找单词。 源代码:
package recite;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import javax.swing.filechooser.*;
public class Recite {
public static void main(String args[]) {
new Win();
}
}
class Win extends JFrame implements ActionListener,FocusListener,KeyListener{
JMenu menu,edit;
JMenuItem open,save,save_as,modify,checkCH,checkEN,feedback,find;
JMenuBar menuBar;
JPanel nPanel,sPanel;
JFileChooser fileChooser;
Icon leftIcon=new ImageIcon("D:\\Program\\left.png"),
rightIcon=new ImageIcon("D:\\Program\\right.png"),
greenLight=new ImageIcon("D:\\Program\\d5.png"),
blueLight=new ImageIcon("D:\\Program\\d1.png"),
orangeLight=new ImageIcon("D:\\Program\\d9.png"),
whiteLight=new ImageIcon("D:\\Program\\d2.png");
JButton left,right,greenB,blueB,orangeB;
int pageNum=1,pageTotal=100,selectionState,checkCHFlag=0,checkENFlag=1,modifyFlag=0,array1=100,array2=12,saveState=0,modifyed=0;
Box baseBox,vBox[]=new Box[array2],hBox[]=new Box[array2];
JTextField mess[]=new JTextField[array2],input[]=new JTextField[array2],answer[]=new JTextField[array2],focusField;
JLabel page,status_bar;
String data1[][]=new String[array1][array2],data2[][]=new String[array1][array2];
Read autoReadFile=new Read();
File file=new File("D:/Program/Data.txt");
WindowAdapt windowAdapt=new WindowAdapt();
Win(){
init();
setSize(800,800);
setLocationRelativeTo(null);
setVisible(true);
windowAdapt.getFrame(this);
addWindowListener(windowAdapt);
setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
input[0].requestFocus();
}
void init() {
setTitle("Recite");
fileChooser=new JFileChooser();
FileNameExtensionFilter filter=new FileNameExtensionFilter("Text","txt");
fileChooser.setFileFilter(filter);
nPanel=new JPanel();
sPanel=new JPanel();
left=new JButton();
left.setIcon(leftIcon);
left.setContentAreaFilled(false);
left.setBorderPainted(false);
left.setFocusable(false);
right=new JButton();
right.setIcon(rightIcon);
right.setContentAreaFilled(false);
right.setBorderPainted(false);
right.setFocusable(false);
greenB=new JButton();
greenB.setIcon(whiteLight);
greenB.setContentAreaFilled(false);
greenB.setBorderPainted(false);
greenB.setFocusable(false);
blueB=new JButton();
blueB.setIcon(whiteLight);
blueB.setContentAreaFilled(false);
blueB.setBorderPainted(false);
blueB.setFocusable(false);
orangeB=new JButton();
orangeB.setIcon(orangeLight);
orangeB.setContentAreaFilled(false);
orangeB.setBorderPainted(false);
orangeB.setFocusable(false);
baseBox=Box.createVerticalBox();
for(int i=0;i |