?? myframe.java
字號:
import java.awt.*;
import java.awt.event.*;
import javax.swing.JTextArea;
import java.awt.datatransfer.*;
import java.io.*;
import java.awt.datatransfer.*;
import javax.swing.*;
import javax.swing.border.*;
import javax.swing.JOptionPane;
import java.util.*;
class MyFrame extends Frame implements ActionListener,KeyListener,MouseListener
{
Menu fileMenu,editMenu,formatMenu,helpMenu;
MenuItem newFile,openFile,saveFile,saveasFile,exitFile;
MenuItem removeEdit,copyEdit,pasteEdit,cutEdit,deleteEdit,findEdit,replaceEdit,selectallEdit;
MenuItem fontFormat;
MenuItem aboutHelp;
MenuItem popRemove;
MenuItem popCopy;
MenuItem popPaste;
MenuItem popCut;
MenuItem popDelete;
MenuItem popSelectall;
MenuBar bar;
public static JTextArea text;
FileDialog filedialog_save,filedialog_saveas;
FileDialog filedialog_load;
FileReader fileReader;
FileWriter fileWriter;
BufferedReader in;
BufferedWriter out;
Clipboard clipboard=null;
int size=20;
static Font font;
ImageDialog imagedialog;
FontDialog fontdialog;
static int Issave=0;
String opendir,openname;
Stack stack;
PopupMenu popupmenu;
MyFrame()
{
super("新建文本文檔");
stack=new Stack();
text=new JTextArea(10,16);
Image icon=Toolkit.getDefaultToolkit().getImage("d:\\1.1.jpg");
this.setIconImage(icon);
clipboard=getToolkit().getSystemClipboard();
filedialog_save=new FileDialog(this,"保存對話框",FileDialog.SAVE);
filedialog_saveas=new FileDialog(this,"另存為",FileDialog.SAVE);
filedialog_load=new FileDialog(this,"打開對話框",FileDialog.LOAD);
filedialog_save.setVisible(false);
filedialog_load.setVisible(false);
imagedialog=new ImageDialog(this);
fontdialog=new FontDialog(this,text);
filedialog_save.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowListener e)
{
filedialog_save.setVisible(false);
}
});
filedialog_load.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowListener e)
{
filedialog_load.setVisible(false);
}
});
font=new Font("Batang",Font.PLAIN,size);
text.setFont(font);
bar=new MenuBar();
fileMenu=new Menu("文件");
editMenu=new Menu("編輯");
formatMenu=new Menu("字體");
helpMenu=new Menu("幫助");
MenuShortcut newshort=new MenuShortcut(KeyEvent.VK_N,false);
newFile=new MenuItem("新建",newshort);
MenuShortcut openshort=new MenuShortcut(KeyEvent.VK_O,false);
openFile=new MenuItem("打開",openshort);
MenuShortcut saveshort=new MenuShortcut(KeyEvent.VK_S,false);
saveFile=new MenuItem("保存",saveshort);
MenuShortcut saveasshort=new MenuShortcut(KeyEvent.VK_X,false);
saveasFile=new MenuItem("另存為",saveasshort);
MenuShortcut exitshort=new MenuShortcut(KeyEvent.VK_E,false);
exitFile=new MenuItem("退出",exitshort);
fileMenu.add(newFile);
fileMenu.add(openFile);
fileMenu.add(saveFile);
fileMenu.add(saveasFile);
fileMenu.add(exitFile);
newFile.addActionListener(this);
openFile.addActionListener(this);
saveFile.addActionListener(this);
saveasFile.addActionListener(this);
exitFile.addActionListener(this);
MenuShortcut removeshort=new MenuShortcut(KeyEvent.VK_Z,false);
removeEdit=new MenuItem("撤消",removeshort);
MenuShortcut copyshort=new MenuShortcut(KeyEvent.VK_C,false);
copyEdit=new MenuItem("復制",copyshort);
MenuShortcut pasteshort=new MenuShortcut(KeyEvent.VK_V,false);
pasteEdit=new MenuItem("粘貼",pasteshort);
MenuShortcut cutshort=new MenuShortcut(KeyEvent.VK_X,false);
cutEdit=new MenuItem("剪切",cutshort);
MenuShortcut deleteshort=new MenuShortcut(KeyEvent.VK_D,false);
deleteEdit=new MenuItem("刪除",deleteshort);
MenuShortcut findshort=new MenuShortcut(KeyEvent.VK_F,false);
findEdit=new MenuItem("查找",findshort);
MenuShortcut replaceshort=new MenuShortcut(KeyEvent.VK_R,false);
replaceEdit=new MenuItem("替換",replaceshort);
MenuShortcut selectallshort=new MenuShortcut(KeyEvent.VK_A,false);
selectallEdit=new MenuItem("全選",selectallshort);
fontFormat=new MenuItem("字體");
aboutHelp=new MenuItem("關于");
editMenu.add(removeEdit);
editMenu.add(copyEdit);
editMenu.add(pasteEdit);
editMenu.add(cutEdit);
editMenu.add(deleteEdit);
editMenu.add(findEdit);
editMenu.add(replaceEdit);
editMenu.add(selectallEdit);
removeEdit.addActionListener(this);
copyEdit.addActionListener(this);
pasteEdit.addActionListener(this);
cutEdit.addActionListener(this);
findEdit.addActionListener(this);
replaceEdit.addActionListener(this);
selectallEdit.addActionListener(this);
formatMenu.add(fontFormat);
helpMenu.add(aboutHelp);
bar.add(fileMenu);
bar.add(editMenu);
bar.add(formatMenu);
bar.add(helpMenu);
setMenuBar(bar);
fontFormat.addActionListener(this);
aboutHelp.addActionListener(this);
popupmenu=new PopupMenu();
MenuShortcut popremoveshort=new MenuShortcut(KeyEvent.VK_Z,false);
popRemove=new MenuItem("撤消",popremoveshort);
popRemove.addActionListener(this);
MenuShortcut popcopyshort=new MenuShortcut(KeyEvent.VK_C,false);
popCopy=new MenuItem("復制",popcopyshort);
popCopy.addActionListener(this);
MenuShortcut poppasteshort=new MenuShortcut(KeyEvent.VK_V,false);
popPaste=new MenuItem("粘貼",poppasteshort);
popPaste.addActionListener(this);
MenuShortcut popcutshort=new MenuShortcut(KeyEvent.VK_X,false);
popCut=new MenuItem("剪切",popcutshort);
popCut.addActionListener(this);
MenuShortcut popdeleteshort=new MenuShortcut(KeyEvent.VK_D,false);
popDelete=new MenuItem("刪除",popdeleteshort);
popDelete.addActionListener(this);
MenuShortcut popselectallshort=new MenuShortcut(KeyEvent.VK_A,false);
popSelectall=new MenuItem("全選",popselectallshort);
popSelectall.addActionListener(this);
popupmenu.add(popRemove);
popupmenu.add(popCopy);
popupmenu.add(popPaste);
popupmenu.add(popCut);
popupmenu.add(popDelete);
text.addMouseListener(this);
add(popupmenu);
add(text,BorderLayout.CENTER);
this.pack();
this.setBounds(150,150,700,500);
this.setVisible(true);
this.validate();
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
Isclose();
}
});
}
public void Isclose()
{
if(text.getText().equals(new String("")))
{
System.exit(0);
}
if(Issave==1 && text.getText()!=null)
{
System.exit(0);
}
if(Issave==0&& text.getText()!=null)
{
int n=JOptionPane.showConfirmDialog(this,"文件內容已改變,需要保存文件嗎?","確認對話框",JOptionPane.YES_NO_CANCEL_OPTION);
if(n==JOptionPane.YES_OPTION)
{
filedialog_save.setVisible(true);
if(filedialog_save.getFile()!=null)
{
String name;
try
{
fileWriter=new FileWriter(new File(filedialog_save.getDirectory(),filedialog_save.getFile()));
out=new BufferedWriter(fileWriter);
name=text.getText();
out.write(name,0,name.length());
out.flush();
out.close();
fileWriter.close();
Issave=1;
}
catch(IOException e2)
{
}
}
}
if(n==JOptionPane.NO_OPTION)
{
System.exit(0);
}
else
{
filedialog_save.setVisible(false);
}
}
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==newFile)
{
text.setText("");
this.setTitle("新建文本文檔");
}
if(e.getSource()==openFile)
{
filedialog_load.setVisible(true);
if(filedialog_load.getFile()!=null)
{
String name;
try
{
openname=filedialog_load.getFile();
opendir=filedialog_load.getDirectory();
text.setText("");
this.setTitle(filedialog_load.getFile()+" Notepad");
fileReader=new FileReader(new File(filedialog_load.getDirectory(),filedialog_load.getFile()));
in=new BufferedReader(fileReader);
while((name=in.readLine())!=null)
{
text.append(name+'\n');
}
in.close();
fileReader.close();
}
catch(IOException e1){
}
}
}
if(e.getSource()==saveFile)
{
String title=new String("新建文本文檔");
// System.out.println(title);
// System.out.println(this.getTitle());
if(this.getTitle().equals(title))
{
filedialog_save.setVisible(true);
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -