?? jnotepadui.java~199~
字號:
package jnotepad;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.KeyAdapter;
/**
* <p>Title: JNotePad</p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2007</p>
*
* <p>Company: hhxy</p>
*
* @author 王利華
* @version 1.0
*/
public class JNotePadUI extends JFrame {
JPanel contentPane;
BorderLayout borderLayout1 = new BorderLayout();
JMenuBar jMenuBar1 = new JMenuBar();
JMenu jMenuFile = new JMenu();
JMenuItem jMenuFileExit = new JMenuItem();
JMenuItem jMenuItemOpen = new JMenuItem();
JMenuItem jMenuItemSave = new JMenuItem();
JMenuItem jMenuItemSaveAS = new JMenuItem();
JMenu jMenuEdit = new JMenu();
JMenuItem jMenuItemCut = new JMenuItem();
JMenuItem jMenuItemCopy = new JMenuItem();
JMenuItem jMenuItemParse = new JMenuItem();
JMenu jMenuAbout = new JMenu();
JMenuItem jMenuItemAbout = new JMenuItem();
JLabel stateBar = new JLabel();
JScrollPane jScrollPane1 = new JScrollPane();
JTextArea jTextArea = new JTextArea();
JPopupMenu popUpMenu;
JFileChooser fileChooser=new JFileChooser();
JMenuItem jMenuItemNew = new JMenuItem();
JPanel jPanel1 = new JPanel();
JToolBar jToolBar1 = new JToolBar();
ToolBarAction tba_new = new ToolBarAction("新建",new ImageIcon(".\\src\\img\\new.gif"));
ToolBarAction tba_open = new ToolBarAction("打開",new ImageIcon(".\\src\\img\\open.gif"));
ToolBarAction tba_save = new ToolBarAction("保存",new ImageIcon(".\\src\\img\\save.gif"));
ToolBarAction tba_cut = new ToolBarAction("剪切",new ImageIcon(".\\src\\img\\cut.gif"));
ToolBarAction tba_copy = new ToolBarAction("復制",new ImageIcon(".\\src\\img\\copy.gif"));
ToolBarAction tba_paste = new ToolBarAction("粘貼",new ImageIcon(".\\src\\img\\paste.gif"));
GridLayout gridLayout1 = new GridLayout();
JMenu jMenuFormat = new JMenu();
JMenuItem jMenuItem1 = new JMenuItem();
JButton jButtonColor = new JButton(new ImageIcon(".\\src\\img\\color.gif"));
JButton jButtonA = new JButton(new ImageIcon(".\\src\\img\\fg.gif"));
JAVAFileFilter filetype;
public JNotePadUI() {
try {
setDefaultCloseOperation(EXIT_ON_CLOSE);
jbInit();
} catch (Exception exception) {
exception.printStackTrace();
}
}
/**
* Component initialization.
*
* @throws java.lang.Exception
*/
private void jbInit() throws Exception {
contentPane = (JPanel) getContentPane();
contentPane.setLayout(borderLayout1);
setSize(new Dimension(640, 480));
setTitle("新建文本文件");
jMenuFile.setAction(null);
jMenuFile.setActionCommand("");
jMenuFile.setText("文件");
jMenuFileExit.setText("退出");
jMenuFileExit.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.
awt.event.KeyEvent.VK_Q, java.awt.event.KeyEvent.CTRL_MASK, false));
jMenuFileExit.addActionListener(new
JNotePadUI_jMenuFileExit_ActionAdapter(this));
jMenuItemOpen.setText("打開");
jMenuItemOpen.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.
event.KeyEvent.VK_O, java.awt.event.KeyEvent.CTRL_MASK, false));
jMenuItemOpen.addActionListener(new
JNotePadUI_jMenuItemOpen_actionAdapter(this));
jMenuItemSave.setText("保存");
jMenuItemSave.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.
event.KeyEvent.VK_S, java.awt.event.KeyEvent.CTRL_MASK, false));
jMenuItemSave.addActionListener(new
JNotePadUI_jMenuItemSave_actionAdapter(this));
jMenuItemSaveAS.setText("另存為");
jMenuItemSaveAS.addActionListener(new
JNotePadUI_jMenuItemSaveAS_actionAdapter(this));
jMenuEdit.setText("編輯");
jMenuItemCut.setText("剪切");
jMenuItemCut.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.
event.KeyEvent.VK_X, java.awt.event.KeyEvent.CTRL_MASK, false));
jMenuItemCut.addActionListener(new
JNotePadUI_jMenuItemCut_actionAdapter(this));
jMenuItemCopy.setText("復制");
jMenuItemCopy.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.
awt.event.KeyEvent.VK_C, java.awt.event.KeyEvent.CTRL_MASK, false));
jMenuItemCopy.addActionListener(new
JNotePadUI_jMenuItemCopy_actionAdapter(this));
jMenuItemParse.setText("粘貼");
jMenuItemParse.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.
awt.event.KeyEvent.VK_V, java.awt.event.KeyEvent.CTRL_MASK, false));
jMenuItemParse.addActionListener(new
JNotePadUI_jMenuItemParse_actionAdapter(this));
jMenuAbout.setText("關于");
jMenuItemAbout.setText("關于JNotePad");
jMenuItemAbout.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.
awt.event.KeyEvent.VK_F2, 0, true));
jMenuItemAbout.addActionListener(new
JNotePadUI_jMenuItemAbout_actionAdapter(this));
stateBar.setText("未修改");
jTextArea.setFont(new java.awt.Font("宋體", Font.PLAIN, 16));
jTextArea.setText("");
jTextArea.setLineWrap(true);
jTextArea.addKeyListener(new JNotePadUI_jTextArea_keyAdapter(this));
jTextArea.addMouseListener(new JNotePadUI_jTextArea_mouseAdapter(this));
jMenuItemNew.setText("新建");
jMenuItemNew.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.
event.KeyEvent.VK_N, java.awt.event.KeyEvent.CTRL_MASK, false));
jMenuItemNew.addActionListener(new
JNotePadUI_jMenuItemNew_actionAdapter(this));
jPanel1.setLayout(gridLayout1);
jMenuFormat.setText("格式");
jMenuItem1.setText("字體");
jMenuItem1.addActionListener(new JNotePadUI_jMenuItem1_actionAdapter(this));
jButtonColor.setBorder(BorderFactory.createEtchedBorder());
jButtonColor.setToolTipText("顏色");
jButtonColor.setText("");
jButtonColor.addActionListener(new
JNotePadUI_jButtonColor_actionAdapter(this));
jButtonA.setBorder(BorderFactory.createEtchedBorder());
jButtonA.setToolTipText("字體");
jButtonA.addActionListener(new JNotePadUI_jButtonA_actionAdapter(this));
jMenuBar1.add(jMenuFile);
jMenuBar1.add(jMenuEdit);
jMenuBar1.add(jMenuAbout);
jMenuBar1.add(jMenuFormat);
jMenuFile.add(jMenuItemNew);
jMenuFile.addSeparator();
jMenuFile.add(jMenuItemOpen);
jMenuFile.addSeparator();
jMenuFile.add(jMenuItemSave);
jMenuFile.add(jMenuItemSaveAS);
jMenuFile.addSeparator();
jMenuFile.add(jMenuFileExit);
setJMenuBar(jMenuBar1);
jMenuEdit.add(jMenuItemCut);
jMenuEdit.add(jMenuItemCopy);
jMenuEdit.add(jMenuItemParse);
jMenuAbout.add(jMenuItemAbout);
contentPane.add(stateBar, java.awt.BorderLayout.SOUTH);
contentPane.add(jPanel1, java.awt.BorderLayout.NORTH);
jPanel1.add(jToolBar1);
contentPane.add(jScrollPane1, java.awt.BorderLayout.CENTER);
jScrollPane1.getViewport().add(jTextArea);
jMenuFormat.add(jMenuItem1);
popUpMenu=jMenuEdit.getPopupMenu();
JButton JB;
JB = jToolBar1.add(tba_new);
JB.setToolTipText((String)tba_new.getValue(Action.NAME));
JB.setActionCommand("new");
JB.setBorder(BorderFactory.createEtchedBorder());
JB = jToolBar1.add(tba_open);
JB.setToolTipText((String)tba_open.getValue(Action.NAME));
JB.setActionCommand("open");
JB.setBorder(BorderFactory.createEtchedBorder());
JB = jToolBar1.add(tba_save);
JB.setToolTipText((String)tba_save.getValue(Action.NAME));
JB.setActionCommand("save");
JB.setBorder(BorderFactory.createEtchedBorder());
JB = jToolBar1.add(tba_cut);
JB.setToolTipText((String)tba_cut.getValue(Action.NAME));
JB.setActionCommand("cut");
JB.setBorder(BorderFactory.createEtchedBorder());
JB = jToolBar1.add(tba_copy);
JB.setToolTipText((String)tba_copy.getValue(Action.NAME));
JB.setActionCommand("copy");
JB.setBorder(BorderFactory.createEtchedBorder());
JB = jToolBar1.add(tba_paste);
JB.setToolTipText((String)tba_new.getValue(Action.NAME));
JB.setActionCommand("paste");
JB.setBorder(BorderFactory.createEtchedBorder());
jToolBar1.add(jButtonColor);
jToolBar1.add(jButtonA);
fileChooser.addChoosableFileFilter(new JAVAFileFilter("hua"));
fileChooser.addChoosableFileFilter(new JAVAFileFilter("li"));
fileChooser.addChoosableFileFilter(new JAVAFileFilter("wang"));
filetype=(JAVAFileFilter)fileChooser.getFileFilter();
}
private void cut(){
jTextArea.cut();
stateBar.setText("已修改");
popUpMenu.setVisible(false);
}
private void copy(){
jTextArea.copy();
popUpMenu.setVisible(false);
}
private void paste(){
jTextArea.paste();
stateBar.setText("已修改");
popUpMenu.setVisible(false);
}
private boolean isCurrenFileSaved(){
if(stateBar.getText().equals("未修改"))
return false;
return true;
}
private void file(){
jTextArea.setText("");
setTitle("新建文本文件");
stateBar.setText("未修改");
}
private void newFile(){
if(isCurrenFileSaved()){
int option=JOptionPane.showConfirmDialog(null,"文件已修改,是否保存?","保存文件?",
JOptionPane.YES_NO_CANCEL_OPTION,JOptionPane.WARNING_MESSAGE,null
);
switch(option){
case JOptionPane.YES_OPTION:
saveFile();break;
}
}
file();
}
private void openFile(){
if(!isCurrenFileSaved()){
open();
}
else{
int option=JOptionPane.showConfirmDialog(null,"文件已修改,是否保存?","保存文件?",
JOptionPane.YES_NO_CANCEL_OPTION,JOptionPane.WARNING_MESSAGE,null
);
switch(option){
case JOptionPane.YES_OPTION:
saveFile();break;
case JOptionPane.NO_OPTION:
open();break;
}
}
}
private void open(){
int option=fileChooser.showOpenDialog(this);
if(option==JFileChooser .APPROVE_OPTION){
try{
BufferedReader bu=new BufferedReader(new FileReader(fileChooser.getSelectedFile()));
String s=fileChooser.getSelectedFile().toString();
s=s.substring(s.lastIndexOf('\\')+1);
setTitle(s);
jTextArea.setText("");
stateBar.setText("未修改");
String lineSeparator=System.getProperty("line.separator");
String text;
while((text=bu.readLine())!=null){
jTextArea.append(text);
jTextArea.append(lineSeparator);
}
bu.close();
}catch(IOException e){
JOptionPane.showMessageDialog(null,e.toString(),"開啟文件失敗",JOptionPane.ERROR_MESSAGE);
}
}
}
private void saveFile(){
File file=new File(getTitle());
System.out.println("file="+file.exists());
if(!file.exists())
saveFileAs();
else{
try{
BufferedWriter bu=new BufferedWriter(new FileWriter(file));
bu.write(jTextArea.getText());
bu.close();
stateBar.setText("未修改");
setTitle(file.toString().substring(file.toString().lastIndexOf('\\')+1));
}catch(Exception e){
JOptionPane.showMessageDialog(null,e.toString(),"寫入文件失敗",JOptionPane.ERROR_MESSAGE);
}
}
}
private void saveFileAs(){
int option=fileChooser.showSaveDialog(this);
if(option==JFileChooser.APPROVE_OPTION){
try{
File file=fileChooser.getSelectedFile();
String s=file.toString();
System.out.println(filetype.ext);
file=new File(s);
setTitle(s);
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -