?? diary.java
字號(hào):
/*
* Diary.java
*
* Created on 2007年12月9日, 上午10:27
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package diary;
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.lang.String;
import java.net.URL;
/**
*
* @author hy
*/
public class Diary extends JFrame implements ActionListener{
private boolean changed;
private String fileName;
JScrollPane textscrollpane=new JScrollPane();
JMenuBar menuBar=new JMenuBar();
JMenu Filemenu=new JMenu("文件");
JMenuItem newFileItem=new JMenuItem("新建(N)",'N');
JMenuItem openFileItem=new JMenuItem("打開(O)",'0');
JMenuItem saveFileItem=new JMenuItem("保存(S)",'S');
JMenuItem saveAsFileItem=new JMenuItem("另存為(A)",'A');
JMenuItem exitFileItem=new JMenuItem("退出(X)",'X');
JMenu Editmenu=new JMenu("編輯");
JMenuItem FindEditItem=new JMenuItem("查找(F)",'F');
JMenuItem cutEditItem=new JMenuItem("剪切(T)",'T');
JMenuItem copyEditItem=new JMenuItem("復(fù)制(C)",'C');
JMenuItem PasteEditItem=new JMenuItem("粘貼(P)",'P');
JMenu Setmenu=new JMenu("設(shè)置");
JMenu Fontmenu=new JMenu("字體");
JMenuItem FcolorMenuItem=new JMenuItem("字體顏色");
JMenuItem BcolorMenuItem=new JMenuItem("背景顏色");
JCheckBoxMenuItem boldMenuItem=new JCheckBoxMenuItem("黑體");
JCheckBoxMenuItem italicMenuItem=new JCheckBoxMenuItem("斜體");
JMenu Helpmenu=new JMenu("幫助");
JMenuItem AboutItem=new JMenuItem("關(guān)于");
JTextArea textDemo=new JTextArea("示例文件");
int Bold,Italic;
public Diary(){
addWindowListener( new WindowAdapter(){
public void windowClosing(WindowEvent e){
exitForm(e);}
});
this.setJMenuBar(menuBar);
menuBar.add(Filemenu);
menuBar.add(Editmenu);
menuBar.add(Setmenu);
menuBar.add(Helpmenu);
Filemenu.add(newFileItem);
Filemenu.add(openFileItem);
Filemenu.add(saveFileItem);
Filemenu.add(saveAsFileItem);
Filemenu.add(exitFileItem);
Editmenu.add(cutEditItem);
Editmenu.add(copyEditItem);
Editmenu.add(PasteEditItem);
Editmenu.add(FindEditItem);
Setmenu.add(FcolorMenuItem);
Setmenu.add(BcolorMenuItem);
Setmenu.add (Fontmenu);
Fontmenu.add (boldMenuItem);
Fontmenu.add (italicMenuItem);
Helpmenu.add(AboutItem);
this.getContentPane().add(textDemo);
ImageIcon newIcon=new ImageIcon("new.gif");
JButton newBtn=new JButton(newIcon);
newBtn.setToolTipText("新建");
JButton openBtn=new JButton(new ImageIcon("open.gif"));
openBtn.setToolTipText("打開");
JButton saveBtn=new JButton(new ImageIcon("save.gif"));
saveBtn.setToolTipText("保存");
JToolBar toolBar=new JToolBar("文件工具",SwingConstants.HORIZONTAL);
toolBar.add(newBtn); toolBar.add(openBtn);toolBar.add(saveBtn);
JToolBar toolBar1=new JToolBar("編輯工具",SwingConstants.HORIZONTAL);
JButton cutBtn=new JButton(new ImageIcon("cut.gif"));
cutBtn.setToolTipText("剪切(C)");
JButton copyBtn=new JButton(new ImageIcon("copy.gif"));
copyBtn.setToolTipText("復(fù)制");
JButton pasteBtn=new JButton(new ImageIcon("paste.gif"));
pasteBtn.setToolTipText("粘貼");
toolBar1.add(cutBtn);
toolBar1.add(copyBtn);
toolBar1.add(pasteBtn);
JPanel p=new JPanel(new FlowLayout(FlowLayout.LEFT));
p.add(toolBar); p.add(toolBar1);
getContentPane().add(p,BorderLayout.NORTH);
getContentPane().add(textscrollpane,BorderLayout.CENTER);
createPopupMenu();
newBtn.addActionListener( new ActionListener(){
public void actionPerformed(ActionEvent e){
newMenuItem();
}
});
openBtn.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
openMenuItem();
}
});
saveBtn.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
doSave(fileName);
fileName="";
textDemo.setText("");
changed=false;
}
});
cutBtn.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
textDemo.cut();
}
});
copyBtn.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
textDemo.copy();
}
});
pasteBtn.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
textDemo.paste();
}
});
textscrollpane.setViewportView(textDemo);
textDemo.getAccessibleContext().setAccessibleName("Text Demo");
textDemo.getAccessibleContext().setAccessibleDescription("Text demo.");
textDemo.getDocument().addDocumentListener(new DocumentListener(){
public void insertUpdate(DocumentEvent e){
changed=true;
}
public void removeUpdate(DocumentEvent e){
changed=true;
}
public void changedUpdate(DocumentEvent e){
changed=true;
}
});
}
public void exitForm(WindowEvent e){
System.exit(0);
}
/**
* @param args the command line arguments
*/
public static void main(String[] args){
Diary frame=new Diary();
frame.regListener();
frame.setTitle("記事本");
frame.setSize(500,650);
frame.setVisible(true);
}
private void regListener(){
newFileItem.addActionListener(this);
openFileItem.addActionListener(this);
saveFileItem.addActionListener(this);
saveAsFileItem.addActionListener(this);
exitFileItem.addActionListener(this);
FindEditItem.addActionListener(this);
cutEditItem.addActionListener(this);
copyEditItem.addActionListener(this);
PasteEditItem.addActionListener(this);
FcolorMenuItem.addActionListener(this);
BcolorMenuItem.addActionListener(this);
boldMenuItem.addActionListener(this);
italicMenuItem.addActionListener(this);
AboutItem.addActionListener(this);
}
public void actionPerformed(ActionEvent e){
if(e.getActionCommand().equals("新建(N)"))
{
int n;
Object[] option={"YES","NO","CANCEL"};
if(changed==true)
{
n=JOptionPane.showOptionDialog(null,"你的文件還沒保存,你想現(xiàn)在保存嗎?",
"保存",JOptionPane.YES_NO_CANCEL_OPTION,JOptionPane.QUESTION_MESSAGE,
null,option,option[0]);
switch(n)
{
case JOptionPane.YES_OPTION:{
doSave(fileName);
fileName="";
textDemo.setText("");
changed=false;
break;
}
case JOptionPane.NO_OPTION:{
fileName="";
textDemo.setText("");
changed=false;
break;
}
case JOptionPane.CANCEL_OPTION:
break;
}
}
else
{
fileName="";
textDemo.setText("");
}
}
else if(e.getActionCommand().equals("保存(S)")){
doSave(fileName);
fileName="";
textDemo.setText("");
changed=false;
}
else if(e.getActionCommand().equals("另存為(A)")){
doSaveAs();
fileName="";
textDemo.setText("");
changed=false;
}
else if(e.getActionCommand().equals("打開(0)")){
openMenuItem();
}
else if(e.getActionCommand().equals("退出(X)")){
int n;
Object[] option={"YES","NO"};
if(changed==true)
{
n=JOptionPane.showOptionDialog(null,"你的文件還沒保存,你想現(xiàn)在保存嗎?",
"保存",JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE,null,option,option[0]);
if(n==JOptionPane.YES_OPTION)
{
doSave(fileName);
System.exit(0);
}
}
}
else if(e.getActionCommand().equals("查找(F)")){
findMenuItem(e);
}
else if(e.getActionCommand().equals("剪切(T)")){
textDemo.cut();
}
else if(e.getActionCommand().equals("復(fù)制(C)")){
textDemo.copy();
}
else if(e.getActionCommand().equals("粘貼(P)")){
textDemo.paste();
}
else if(e.getActionCommand().equals("黑體")){
Bold=(boldMenuItem.isSelected()?Font.BOLD:Font.PLAIN);
}
else if(e.getActionCommand().equals("斜體")){
Italic=(italicMenuItem.isSelected()?Font.ITALIC:Font.PLAIN);
}
else if(e.getActionCommand().equals("字體顏色")){
FcolorMenuItem(e);
}
else if(e.getActionCommand().equals("背景顏色")){
BcolorMenuItem(e);
}
else if(e.getActionCommand().equals("關(guān)于")){
new About(this).setVisible(true);
}
}
public void createPopupMenu()
{
JMenuItem menuItem;
JSeparator jseparator1;
JPopupMenu popup=new JPopupMenu();
menuItem=new JMenuItem("新建");
menuItem.addActionListener( new ActionListener(){
public void actionPerformed(ActionEvent e){
newMenuItem();
}
});
popup.add(menuItem);
menuItem=new JMenuItem("剪切");
menuItem.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
textDemo.cut();
}
});
popup.add(menuItem);
menuItem=new JMenuItem("復(fù)制");
menuItem.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
textDemo.copy();
}
});
popup.add(menuItem);
menuItem=new JMenuItem("粘貼");
menuItem.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
textDemo.paste();
}
});
popup.add(menuItem);
menuItem=new JMenuItem("背景顏色...");
menuItem.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
BcolorMenuItem(e);
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -