📄 errorgui.java
字号:
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
import java.io.*;
public class ErrorGUI extends JFrame implements ActionListener
{
private BorderLayout layout;
private JMenuBar menuBar;
private JMenu fileMenu,checkMenu,helpMenu;
private JPanel southPanel;
private JTextArea checkArea;
private Container pane;
JScrollPane scroller;
JViewport port;
FileDialog openDialog,saveDialog;
ReadDictionary dictionary;
FindError findError;
File openFile,dictionaryFile;
public ErrorGUI()
{
super("吴晓辉词汇检测");
layout=new BorderLayout();
pane=this.getContentPane();
pane.setLayout(layout);
createMenu();
initText();
pane.add(scroller,BorderLayout.CENTER);
pack();
setSize(500,400);
setVisible(true);
}
private void createMenu()
{
JMenuItem item;
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
fileMenu = new JMenu("文件");
fileMenu.setFont(new Font("宋体",Font.PLAIN,12));
item = new JMenuItem("打开");
item.addActionListener(this);
fileMenu.add(item);
item = new JMenuItem("保存");
item.addActionListener(this);
fileMenu.add(item);
fileMenu.addSeparator();
item = new JMenuItem("退出");
item.addActionListener(this);
fileMenu.add(item);
checkMenu = new JMenu("查错");
checkMenu.setFont(new Font("宋体",Font.PLAIN,12));
item = new JMenuItem("检测");
item.addActionListener(this);
checkMenu.add(item);
item = new JMenuItem("导入词典");
item.addActionListener(this);
checkMenu.add(item);
helpMenu = new JMenu("帮助");
helpMenu.setFont(new Font("宋体",Font.PLAIN,12));
item = new JMenuItem("帮助主题");
helpMenu.add(item);
helpMenu.addSeparator();
item = new JMenuItem("关于");
item.addActionListener(this);
helpMenu.add(item);
menuBar = new JMenuBar();
menuBar.add(fileMenu);
menuBar.add(checkMenu);
menuBar.add(helpMenu);
this.setJMenuBar(menuBar);
}
private void initText(){
checkArea=new JTextArea();
scroller = new JScrollPane();
port = scroller.getViewport();
port.add(checkArea);
}
public void actionPerformed(ActionEvent e){
if(e.getActionCommand().equals("打开")){
if (openDialog == null) {
openDialog = new FileDialog(this);
}
openDialog.setMode(FileDialog.LOAD);
openDialog.show();
String file = openDialog.getFile();
if (file == null) {
return;
}
String directory =openDialog.getDirectory();
openFile = new File(directory, file);
setText(openFile);
}
if(e.getActionCommand().equals("保存")){
if (saveDialog == null) {
saveDialog = new FileDialog(this);
}
saveDialog.setMode(FileDialog.SAVE);
saveDialog.show();
String file = saveDialog.getFile();
if (file == null) {
return;
}
String directory =saveDialog.getDirectory();
File f = new File(directory, file);
saveText(f);
}
if(e.getActionCommand().equals("退出"))System.exit(0);
if(e.getActionCommand().equals("导入词典")){
if (openDialog == null) {
openDialog = new FileDialog(this);
}
openDialog.setMode(FileDialog.LOAD);
openDialog.show();
String file = openDialog.getFile();
if (file == null) {
return;
}
String directory =openDialog.getDirectory();
dictionaryFile= new File(directory, file);
dictionary=new ReadDictionary(dictionaryFile);
if(dictionary!=null)JOptionPane.showMessageDialog(new JFrame(),"导入成功");
}
if(e.getActionCommand().equals("检测")){
if (saveDialog == null) {
saveDialog = new FileDialog(this);
}
saveDialog.setMode(FileDialog.SAVE);
saveDialog.show();
String file = saveDialog.getFile();
if (file == null) {
return;
}
String directory =saveDialog.getDirectory();
File f = new File(directory, file);
if(dictionary!=null&&openFile!=null&&!openFile.getAbsolutePath().equals(f.getAbsolutePath()))findError=new FindError(dictionaryFile,f,openFile);
else if(dictionary==null)JOptionPane.showMessageDialog(new JFrame(),"请导入字典文件");
else if(openFile==null)JOptionPane.showMessageDialog(new JFrame(),"请打开一个文件");
else if(openFile.getAbsolutePath().equals(f.getAbsolutePath()))JOptionPane.showMessageDialog(new JFrame(),"请选择正确的文件保存");
}
if(e.getActionCommand().equals("关于"))JOptionPane.showMessageDialog(new JFrame(),"本程序由吴晓辉制作\r\n--01c4工作组");
}
private void setText(File f){
FileInputStream in=null;
InputStreamReader read=null;
String s=new String("");
try {
in=new FileInputStream(f);
read=new InputStreamReader(in);
BufferedReader br=new BufferedReader(read);
checkArea.setText("");
while((s=br.readLine())!=null){
checkArea.append(s+"\r\n");
}
}
catch(IOException e){;}
finally{
if(read!=null)try{read.close();}catch(IOException e){;}
}
}
private void saveText(File f){
OutputStream out=null;
String s=new String("");
try{
out=new FileOutputStream(f);
OutputStreamWriter write=new OutputStreamWriter(out);
s=checkArea.getText();
write.write(s);
write.flush();
}
catch(IOException e){;}
}
}
class tester
{
public static void main(String[] args)
{
new ErrorGUI();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -