📄 gui.java
字号:
package tokenchecker;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.*;
import javax.swing.text.*;
import javax.swing.event.*;
import javax.swing.*;
import java.beans.*;
import javax.swing.plaf.*;
import javax.swing.plaf.metal.DefaultMetalTheme;
import javax.swing.plaf.metal.MetalLookAndFeel;
/**
* class GUI is the main interface
*/
class GUI extends JFrame implements ActionListener {
private DefaultData data;
private TokenChecker checker;
private final int RECENT_FILES = 4;
private Vector recentFiles;
private final String usage = "USEAGE: 这是一个快速单词拼写程序";
private String currentLookAndFeel = "javax.swing.plaf.metal.MetalLookAndFeel";
private static final String metal =
"javax.swing.plaf.metal.MetalLookAndFeel";
private static final String motif =
"com.sun.java.swing.plaf.motif.MotifLookAndFeel";
private static final String windows =
"com.sun.java.swing.plaf.windows.WindowsLookAndFeel";
private JFileChooser chooser;
private JMenu recentFilesMenu;
private JMenu style;
private JDesktopPane desktop;
private LinkedList comps;
private DefaultMetalTheme defaultTheme;
private DefaultMetalTheme aquaTheme;
private DefaultMetalTheme charcoalTheme;
private DefaultMetalTheme contrastTheme;
private DefaultMetalTheme emeraldTheme;
private DefaultMetalTheme rubyTheme;
private ActionListener openAction,saveAction,exitAction;
private int offsetX = 0,offsetY = 0;
int count = 0;
public GUI() {
super("快速拼写程序");
init();
}
public void init() {
checker = new TokenChecker();
data = new DefaultData();
recentFiles = new Vector(RECENT_FILES);
Container c = this.getContentPane();
comps = new LinkedList();
chooser = new JFileChooser();
chooser.setCurrentDirectory(new File("."));
comps.add(chooser);
defaultTheme = new DefaultMetalTheme();
aquaTheme = new AquaTheme();
charcoalTheme = new CharcoalTheme();
contrastTheme = new ContrastTheme();
emeraldTheme = new EmeraldTheme();
rubyTheme = new RubyTheme();
desktop = new JDesktopPane();
desktop.setDragMode(JDesktopPane.OUTLINE_DRAG_MODE);
c.add(desktop);
this.addWindowListener(new WindowsHandler());
this.setJMenuBar(createJMenuBar());
this.setSize(800,600);
this.setLocation(100,50);
this.setDefaultCloseOperation(this.DO_NOTHING_ON_CLOSE);
this.setVisible(true);
}
public JFrame getFrame() {
return this;
}
public JMenuBar createJMenuBar() {
JMenuBar bar = new JMenuBar();
JMenu fileMenu = createJMenu("File",'F');//菜单
openAction = new OpenAction();
JMenuItem open = createJMenuItem("Open",
new ImageIcon(getClass().getResource("open.gif")));//打开菜单项
open.addActionListener(openAction);
open.registerKeyboardAction(openAction,
KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_MASK),
JComponent.WHEN_IN_FOCUSED_WINDOW);//设置快捷键
fileMenu.add(open);
JMenuItem save = createJMenuItem("Save",
new ImageIcon(getClass().getResource("save.gif")));//保存菜单项
saveAction = new SaveAction();
save.addActionListener(saveAction);
save.registerKeyboardAction(saveAction,
KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK),
JComponent.WHEN_IN_FOCUSED_WINDOW);//设置快捷键
fileMenu.add(save);
fileMenu.addSeparator();
recentFilesMenu = createJMenu("Resend Files",'R');//最近打开的文件菜单项
fileMenu.add(recentFilesMenu);
JMenuItem exit = createJMenuItem("Exit",null);//退出菜单项
exit.setMnemonic('X');
exitAction = new ExitAction();
exit.addActionListener(exitAction);
exit.registerKeyboardAction(exitAction,
KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.CTRL_MASK),
JComponent.WHEN_IN_FOCUSED_WINDOW);//设置快捷键
fileMenu.addSeparator();
fileMenu.add(exit);
bar.add(fileMenu);
JMenu dicMenu = createJMenu("Dictionary",'D');//词典菜单
JRadioButtonMenuItem ignore = new JRadioButtonMenuItem("Ignore UpperCase");
//ignore.setFont(new Font("TimesRoman",Font.PLAIN,14));
ignore.setMnemonic('I');
ignore.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(((JRadioButtonMenuItem)(e.getSource())).isSelected())
checker.setIgnore(true);
}
});
dicMenu.add(ignore);
JMenuItem set = createJMenuItem("Set default dictionary",null);//设置默认词典菜单项
set.addActionListener(this);
dicMenu.add(set);
JMenuItem load = createJMenuItem("Load dictionary",null);//设置默认词典菜单项
load.addActionListener(this);
dicMenu.add(load);
JMenuItem add = createJMenuItem("Add word",null);//添加单词菜单项
add.addActionListener(this);
dicMenu.add(add);
JMenuItem remove = createJMenuItem("Remove word",null);//删除单词菜单项
remove.addActionListener(this);
dicMenu.add(remove);
JMenuItem build = createJMenuItem("Build dictionary",null);//创建词典菜单项
build.addActionListener(this);
dicMenu.add(build);
bar.add(dicMenu);
JMenu lafMenu = createJMenu("L&F",'L');//观感菜单
JMenuItem metal = createJMenuItem("Java",null);//Java观福
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -