?? notepad.java
字號:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
/*
* 類 名:Notepad.java
* 程序名稱:Java 記事本
* 代碼編寫:Cavien E-mail:Cavien@163.com
* 網 站: http://www.cavien.com
*
* 2005年12月23日
*/
public class Notepad extends JFrame {
// 系統組件聲明 //************************************************
private JMenuBar menuBar = new JMenuBar();
private JEditorPane content = new JEditorPane();
private JScrollPane scroll = new JScrollPane(content);
private JFileChooser filechooser = new JFileChooser() ;
private BorderLayout bord = new BorderLayout();
private JLabel statusBar = new JLabel();
private JPanel pane = new JPanel();
private File file = null;
//****************************************************************
// 定義文件菜單 //************************************************
private JMenu fileMenu = new JMenu();
private JMenuItem newMenuItem = new JMenuItem();
private JMenuItem openMenuItem = new JMenuItem();
private JMenuItem saveMenuItem = new JMenuItem();
private JMenuItem saveAsMenuItem = new JMenuItem();
private JMenuItem pageSetupMenuItem = new JMenuItem();
private JMenuItem printMenuItem = new JMenuItem();
private JMenuItem exitMenuItem = new JMenuItem();
//****************************************************************
// 定義風格菜單 //************************************************
private JMenu styleMenu = new JMenu();
private ButtonGroup styleMenuGroup = new ButtonGroup();
private JRadioButtonMenuItem javaStyleMenuItem = new JRadioButtonMenuItem();
private JRadioButtonMenuItem metalStyleMenuItem = new JRadioButtonMenuItem();
private JRadioButtonMenuItem windowsStyleMenuItem = new JRadioButtonMenuItem();
//****************************************************************
// 定義幫助菜單 //************************************************
private JMenuItem aboutMenuItem = new JMenuItem();
private JMenuItem helpTopicMenuItem = new JMenuItem();
private JMenu helpMenu = new JMenu();
//****************************************************************
// 構造函數 //****************************************************
public Notepad(){
initComponents();
}
//****************************************************************
private void initComponents(){
// 添加子菜單項到文件菜單 //**********************************
fileMenu.setText("\u6587\u4ef6 (F)");
newMenuItem.setText(" 新建(N) Ctrl+N");
openMenuItem.setText(" 打開(O)... Ctrl+O");
saveMenuItem.setText(" 保存(S) Ctrl+S");
saveAsMenuItem.setText(" 另存為(A)...");
pageSetupMenuItem.setText(" 頁面設置(U)...");
printMenuItem.setText(" 打印(P)... Ctrl+P");
exitMenuItem.setText(" 退出");
fileMenu.add(newMenuItem);
fileMenu.add(openMenuItem);
fileMenu.add(saveMenuItem);
fileMenu.add(saveAsMenuItem);
fileMenu.addSeparator();
fileMenu.add(pageSetupMenuItem);
fileMenu.add(printMenuItem);
fileMenu.addSeparator();
fileMenu.add(exitMenuItem);
//*************************************************************
// 添加子菜單項到風格菜單 //**********************************
styleMenu.setText("風格(S)");
javaStyleMenuItem.setText("Java默認");
metalStyleMenuItem.setText("Metal風格");
windowsStyleMenuItem.setText("Windows風格");
styleMenuGroup.add(javaStyleMenuItem);
styleMenuGroup.add(metalStyleMenuItem);
styleMenuGroup.add(windowsStyleMenuItem);
styleMenu.add(javaStyleMenuItem);
styleMenu.add(metalStyleMenuItem);
styleMenu.add(windowsStyleMenuItem);
//*************************************************************
// 添加子菜單項到幫助菜單 //**********************************
helpMenu.setText("幫助(H)");
helpTopicMenuItem.setText(" 幫助主題(H)");
aboutMenuItem.setText(" 關于記事本(A)");
helpMenu.add(helpTopicMenuItem);
helpMenu.addSeparator();
helpMenu.add(aboutMenuItem);
//*************************************************************
// 定義文件菜單下的事件監聽 //***********************************
newMenuItem.addActionListener(new newMenuItem_actionAdapter(this));
openMenuItem.addActionListener(new openMenuItem_actionAdapter(this));
saveMenuItem.addActionListener(new saveMenuItem_actionAdapter(this));
saveAsMenuItem.addActionListener(new saveAsMenuItem_actionAdapter(this));
pageSetupMenuItem.addActionListener(new pageSetupMenuItem_actionAdapter(this));
printMenuItem.addActionListener(new printMenuItem_actionAdapter(this));
exitMenuItem.addActionListener(new exitMenuItem_actionAdapter(this));
//***************************************************************
// 定義風格菜單下的事件監聽 //***********************************
javaStyleMenuItem.addActionListener(new javaStyleMenuItem_actionAdapter(this));
metalStyleMenuItem.addActionListener(new metalStyleMenuItem_actionAdapter(this));
windowsStyleMenuItem.addActionListener(new windowsStyleMenuItem_actionAdapter(this));
//***************************************************************
// 定義幫助菜單下的事件監聽 //***********************************
helpTopicMenuItem.addActionListener(new helpTopicMenuItem_actionAdapter(this));
aboutMenuItem.addActionListener(new aboutMenuItem_actionAdapter(this));
//***************************************************************
// 填加菜單到菜單欄 //*******************************************
menuBar.add(fileMenu);
menuBar.add(styleMenu);
menuBar.add(helpMenu);
//***************************************************************
// 對主窗口的一些設置 //*****************************************
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setTitle("無標題 - \u8bb0\u4e8b\u672c");
this.setSize(640,480);
//***************************************************************
setJMenuBar(menuBar);
pane.setLayout(bord);
pane.add("Center",scroll);
setContentPane(pane);
}
// 定義新建菜單項方法 //******************************************
public void newMenuItemActionPerformed(ActionEvent evt){
file = null;
if(!("".equals(content.getText()))){
Object[] options = { " 是(Y) ", " 否(N) "," 取消 " };
int s = JOptionPane.showOptionDialog(null, "\u6587\u4ef6 "+getTitle()+" \u7684\u6587\u5b57\u5df2\u7ecf\u6539\u53d8\u3002\n\u60f3\u4fdd\u5b58\u6587\u4ef6\u5417\uff1f", "\u8bb0\u4e8b\u672c",
JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE,
null, options, options[0]);
switch(s){
case 0:
int returnVal=filechooser.showSaveDialog(this);
if(returnVal == JFileChooser.APPROVE_OPTION) {
file=filechooser.getSelectedFile();
try{
FileWriter fw=new FileWriter(file);
fw.write(content.getText());
setTitle(filechooser.getSelectedFile().getName()+" - \u8bb0\u4e8b\u672c");
fw.close();
}
catch(Exception e){
e.printStackTrace();
}
break;
}
case 1:
content.setText("");
setTitle("無標題 - \u8bb0\u4e8b\u672c");
}
}
}
//****************************************************************
// 定義打開菜單項方法 //******************************************
public void openMenuItemActionPerformed(ActionEvent evt){
try {
file = null;
int returnVal = filechooser.showOpenDialog(this);
if(returnVal == JFileChooser.APPROVE_OPTION){
file = filechooser.getSelectedFile();
FileReader fr = new FileReader(file);
int len = (int)file.length();
char[] buffer = new char[len];
fr.read(buffer,0,len);
fr.close();
content.setText(new String(buffer));
}
}
catch(Exception e){
e.printStackTrace();
}
}
//****************************************************************
// 定義退出菜單項方法 //******************************************
public void exitMenuItem_actionPerformed(ActionEvent e){
if(!("".equals(content.getText()))){
Object[] options = { " 是(Y) ", " 否(N) "," 取消 " };
int s = JOptionPane.showOptionDialog(null, "文件的文字已經改變。\n想保存文件嗎?", "\u8bb0\u4e8b\u672c",
JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE,
null, options, options[0]);
switch(s){
case 0:
int returnVal=filechooser.showSaveDialog(this);
if(returnVal == JFileChooser.APPROVE_OPTION) {
file=filechooser.getSelectedFile();
try{
FileWriter fw=new FileWriter(file);
fw.write(content.getText());
setTitle(filechooser.getSelectedFile().getName()+" - \u8bb0\u4e8b\u672c");
fw.close();
}
catch(Exception ex){
ex.printStackTrace();
}
break;
}
case 1:
System.exit(0);
}
}
else{
System.exit(0);
}
}
//****************************************************************
// 保存事件 //****************************************************
public void saveMenuItemActionPerformed(ActionEvent evt){
int returnVal=filechooser.showSaveDialog(this);
if(returnVal == JFileChooser.APPROVE_OPTION) {
file=filechooser.getSelectedFile();
try{
FileWriter fw=new FileWriter(file);
fw.write(content.getText());
setTitle(filechooser.getSelectedFile().getName()+" - \u8bb0\u4e8b\u672c");
fw.close();
}
catch(Exception e){
e.printStackTrace();
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -