?? 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 + -