?? jnotepadui.java
字號:
/*
* JNotePadUI.java
*
* Created on 2007年11月18日, 上午11:08
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package jnotepadui;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Container;
import java.awt.Font;
import java.awt.GraphicsEnvironment;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.InputEvent;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import javax.swing.BorderFactory;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JColorChooser;
import javax.swing.JDialog;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPopupMenu;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.JToggleButton;
import javax.swing.JToolBar;
import javax.swing.KeyStroke;
import javax.swing.ScrollPaneConstants;
import javax.swing.SwingConstants;
import java.lang.Object;
import java.lang.String;
import javax.swing.plaf.metal.MetalIconFactory;
public class JNotePadUI extends JFrame{
private JMenuItem menuOpen;
private JMenuItem menuSave;
private JMenuItem menuSaveAs;
private JMenuItem menuClose;
private JMenuItem menuColor;
private JMenuItem menuCut;
private JMenuItem menuCopy;
private JMenuItem menuPaste;
private JMenuItem menuSelectAll;
private JMenuItem menuFind;
private JMenuItem menuReplace;
private JMenuItem menuFindNext;
private JMenuItem menuCancel;
private JMenu fileMenu;
private JMenu editMenu;
private JMenu operateMenu;
private JMenu aboutMenu;
private JMenuItem menuAbout;
private JTextArea textArea;
private JPopupMenu popUpMenu;
private String lineSeparator;
private Color color;
private Object buttons;
private JTextField tfind, treplace;
private String strFind, strReplace;
private int txtPlace, txtLen, strNext;
public JNotePadUI() {
super("新建文本文件");
setUpUIComponent();
setUpEventListener();
setVisible(true);
}
private void setUpUIComponent(){
setSize(640,480);
//
JToolBar toolbar = new JToolBar();
JButton [] buttons=new JButton[]{
new JButton("", new ImageIcon("copy.gif")),
new JButton("", new ImageIcon("cut.jpg")),
new JButton("", new ImageIcon("paste.jpg"))
};
buttons[0].setToolTipText("復制");
buttons[1].setToolTipText("剪切");
buttons[2].setToolTipText("粘貼");
toolbar.add(buttons[0]);
toolbar.add(buttons[1]);
toolbar.add(buttons[2]);
buttons[0].addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e){
copy();
}
}
);
buttons[1].addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e){
cut();
}
}
);
buttons[2].addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e){
paste();
}
}
);
Container contentPane = getContentPane();
contentPane.add(toolbar, BorderLayout.NORTH);
JMenuBar menuBar = new JMenuBar();
fileMenu = new JMenu(" 文件");
menuOpen = new JMenuItem("打開");
//
menuOpen.setAccelerator(
KeyStroke.getKeyStroke(
KeyEvent.VK_O,
InputEvent.CTRL_MASK));
menuSave = new JMenuItem("保存");
//
menuSave.setAccelerator(
KeyStroke.getKeyStroke(
KeyEvent.VK_S,
InputEvent.CTRL_MASK));
menuSaveAs = new JMenuItem("另保存");
menuClose = new JMenuItem("關閉");
menuClose.setAccelerator(
KeyStroke.getKeyStroke(
KeyEvent.VK_Q,
InputEvent.CTRL_MASK));
fileMenu.add(menuOpen);
fileMenu.addSeparator();
fileMenu.add(menuSave);
fileMenu.add(menuSaveAs);
fileMenu.addSeparator();
fileMenu.add(menuClose);
editMenu = new JMenu("編輯");
menuColor = new JMenuItem("color");
menuCut = new JMenuItem("剪切");
menuCut.setAccelerator(
KeyStroke.getKeyStroke(
KeyEvent.VK_X,
InputEvent.CTRL_MASK));
menuCopy = new JMenuItem("復制");
menuCopy.setAccelerator(
KeyStroke.getKeyStroke(
KeyEvent.VK_C,
InputEvent.CTRL_MASK));
menuPaste = new JMenuItem("粘貼");
menuPaste.setAccelerator(
KeyStroke.getKeyStroke(
KeyEvent.VK_V,
InputEvent.CTRL_MASK));
menuSelectAll = new JMenuItem("全選");
menuSelectAll.setAccelerator(
KeyStroke.getKeyStroke(
KeyEvent.VK_A,
InputEvent.CTRL_MASK));
operateMenu = new JMenu("操作");
editMenu.add(menuColor);
editMenu.add(menuCut);
editMenu.add(menuCopy);
editMenu.add(menuPaste);
editMenu.add(menuSelectAll);
editMenu.add(operateMenu);
menuFind = new JMenuItem("查找");
menuReplace = new JMenuItem("替換");
menuFindNext = new JMenuItem("查找下一個");
menuCancel = new JMenuItem("撤消");
operateMenu.add(menuFind);
operateMenu.add(menuReplace);
operateMenu.add(menuFindNext);
operateMenu.add(menuCancel);
//
aboutMenu = new JMenu("關于");
menuAbout = new JMenuItem("關于JNotePad");
aboutMenu.add(menuAbout);
menuBar.add(fileMenu);
menuBar.add(editMenu);
menuBar.add(aboutMenu);
setJMenuBar(menuBar);
//
textArea = new JTextArea();
textArea.setFont(new Font("宋體",Font.PLAIN,16));
textArea.setLineWrap(true);
JScrollPane panel = new JScrollPane
(textArea,
ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
contentPane.add(panel,BorderLayout.CENTER);
//
JLabel stateBar = new JLabel("未修改");
stateBar.setHorizontalAlignment
(SwingConstants.LEFT);
stateBar.setBorder(
BorderFactory.createEtchedBorder());
contentPane.add(stateBar,BorderLayout.SOUTH);
popUpMenu = editMenu.getPopupMenu();
}
private void setUpEventListener(){
addWindowListener(
new WindowAdapter(){
public void windowClosing(WindowEvent e){
closeFile();
}
}
);
menuOpen.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e){
openFile();
}
}
);
menuSave.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e){
saveFile();
}
}
);
menuSaveAs.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e){
saveFileAs();
}
}
);
menuPaste.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e){
paste();
}
}
);
menuClose.addActionListener(
new ActionListener(){
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -