辐射避难所好的开局:有没有用java作的记事本程序

来源:百度文库 编辑:神马品牌网 时间:2024/04/27 18:25:15

楼上的大哥怎么还是AWT的阿
都什么年代了,不用Swing么?

这是我编的,由于要出版,所以给你一半代码,如果你想要另一半可以等出版之后给你

import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
import java.awt.datatransfer.*;//ôåÌù°å°ü
import javax.swing.filechooser.*;
import javax.swing.event.*;

public class TextEditor extends JFrame implements ActionListener {
private File file;
JFrame frame=new JFrame();
//¶¨Òå³ö´íÌáʾ
String wrong="ERROR MESSAGE";
int type=JOptionPane.ERROR_MESSAGE;
private JFileChooser fc=new JFileChooser();
private final String title = "Îĵµ_";
private int index = 1;

JTextArea textArea = new JTextArea();
JScrollPane jScrollPane=new JScrollPane(textArea);

JMenuBar menuBar = new JMenuBar();

JMenu fileMenu = new JMenu("Îļþ(F)");

JMenuItem newItem = new JMenuItem("н¨");

JMenuItem openItem = new JMenuItem("´ò¿ª");
JMenuItem saveItem = new JMenuItem("±£´æ");
JMenuItem saveAsItem = new JMenuItem("Áí´æΪ...");
JMenuItem exitItem = new JMenuItem("Í˳ö");

JMenu editMenu = new JMenu("±à¼­(E)");
JMenuItem selectItem = new JMenuItem("È«Ñ¡");
JMenuItem copyItem = new JMenuItem("¸´ÖÆ");
JMenuItem cutItem = new JMenuItem("¼ôÇÐ");
JMenuItem pasteItem = new JMenuItem("Õ³Ìù");

String fileName = "NoName"; //ÉèÖÃĬÈϵÄÎļþÃû
Toolkit toolkit = Toolkit.getDefaultToolkit();
Clipboard clipboard = toolkit.getSystemClipboard(); //¼ôÌù°å¶ÔÏó

public TextEditor() {
setTitle(title+index);
this.setIconImage(new ImageIcon("Text.gif").getImage());
setFont(new Font("Times New Roman", Font.PLAIN, 12));
setBackground(Color.white);
setSize(400, 300);

newItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_MASK));//¿ì½Ý¼ü
fileMenu.add(newItem);
openItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_MASK));//¿ì½Ý¼ü
fileMenu.add(openItem);
fileMenu.addSeparator();

saveItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK));//¿ì½Ý¼ü
fileMenu.add(saveItem);
fileMenu.add(saveAsItem);
fileMenu.addSeparator();
exitItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E,InputEvent.CTRL_MASK));//¿ì½Ý¼ü
fileMenu.add(exitItem);

selectItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.CTRL_MASK));//¿ì½Ý¼ü
editMenu.add(selectItem);
editMenu.addSeparator();

copyItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK));//¿ì½Ý¼ü
editMenu.add(copyItem);
cutItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.CTRL_MASK));//¿ì½Ý¼ü
editMenu.add(cutItem);
pasteItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,InputEvent.CTRL_MASK));//¿ì½Ý¼ü
editMenu.add(pasteItem);

fileMenu.setMnemonic('F');
menuBar.add(fileMenu);
editMenu.setMnemonic('E');
menuBar.add(editMenu);

setJMenuBar(menuBar);
getContentPane().add(jScrollPane);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

file=new File(title+index+".txt");
//³õʼ»¯Îļþ¶Ô»°¿ò
fc.setCurrentDirectory(new File("."));

newItem.addActionListener(this);
openItem.addActionListener(this);
saveItem.addActionListener(this);
saveAsItem.addActionListener(this);
exitItem.addActionListener(this);
selectItem.addActionListener(this);
copyItem.addActionListener(this);
cutItem.addActionListener(this);
pasteItem.addActionListener(this);
}

实现了记事本的基本功能,大家可以完善出更强到的功能!

import java.lang.*;
import java.awt.*;
import java.io.*;
import java.awt.datatransfer.*;
import java.awt.event.*;
public class EditorFrame extends Frame implements ActionListener
{
TextArea textArea = new TextArea(); //用来编辑的文本区
MenuBar menuBar = new MenuBar(); //菜单栏

/* “文件”下拉菜单的新建,保存,另存,和退出等选项 */
Menu fileMenu = new Menu("File"); //文件菜单
MenuItem newItem = new MenuItem("New");
MenuItem openItem = new MenuItem("Open");
MenuItem saveItem = new MenuItem("Save");
MenuItem saveAsItem = new MenuItem("Save As");
MenuItem exitItem = new MenuItem("Exit");

/* 编辑菜单,以及全选,复制,剪切,粘贴等选项 */
Menu editMenu = new Menu("Edit");
MenuItem selectItem = new MenuItem("Select All");
MenuItem copyItem = new MenuItem("Copy");
MenuItem cutItem = new MenuItem("Cut");
MenuItem pasteItem = new MenuItem("Paste");

String fileName = "NoName"; //设置默认的文件名
Toolkit toolKit = Toolkit.getDefaultToolkit();
Clipboard clipBoard = toolKit.getSystemClipboard(); //剪切板对象
/* 打开文件对话框和保存文件对话框 */

private FileDialog openFileDialog = new
FileDialog(this, "Open File", FileDialog.LOAD);
private FileDialog saveAsFileDialog = new
FileDialog(this,"Sava File As", FileDialog.SAVE);
public EditorFrame(){
setTitle("NotePad");
setFont(new Font("Times New Roman", Font.PLAIN,12));
setBackground(Color.white);
setSize(500,500);
// 在窗口中添加菜单栏
fileMenu.add(newItem);
fileMenu.add(openItem);
fileMenu.addSeparator();
fileMenu.add(saveItem);
fileMenu.add(saveAsItem);
fileMenu.addSeparator();
fileMenu.add(exitItem);
editMenu.add(selectItem);
editMenu.addSeparator();
editMenu.add(copyItem);
editMenu.add(cutItem);
editMenu.add(pasteItem);
menuBar.add(fileMenu);
menuBar.add(editMenu);
setMenuBar(menuBar);
add(textArea);
addWindowListener(new WindowAdapter(){
// 指定窗口的退出方式
public void windowClosing(WindowEvent e){
System.exit(0);
}
} );
// 注册各个菜单项的事件监听器
newItem.addActionListener(this);
openItem.addActionListener(this);
saveItem.addActionListener(this);
exitItem.addActionListener(this);
selectItem.addActionListener(this);
copyItem.addActionListener(this);
cutItem.addActionListener(this);
pasteItem.addActionListener(this);
}
public void actionPerformed(ActionEvent e){
Object eventSource = e.getSource();
//利用事件源判断被点击的菜单项
if(eventSource == newItem){
textArea.setText(""); //新建时请空文本区
}else if(eventSource == openItem){
openFileDialog.show(); //显示打开文件的对话框
fileName = openFileDialog.getDirectory()+openFileDialog.getFile();
if(fileName != null)
readFile(fileName);
}else if(eventSource == saveItem){
if(fileName != null)
writeFile(fileName);
}else if(eventSource == saveAsItem){
saveAsFileDialog.show(); //显示保存文件的对话框
fileName = saveAsFileDialog.getDirectory()+saveAsFileDialog.getFile();
if(fileName != null)
writeFile(fileName);
}else if(eventSource == selectItem){
textArea.selectAll(); //全选
}else if(eventSource == copyItem){
String text = textArea.getSelectedText(); //复制
StringSelection selection = new StringSelection(text);
clipBoard.setContents(selection, null);
}else if(eventSource == cutItem){
String text = textArea.getSelectedText();
StringSelection selection = new StringSelection(text);
clipBoard.setContents(selection, null);
//剪切时用空串代替被选字符。
textArea.replaceRange("",textArea.getSelectionStart(),textArea.getSelectionEnd());

}else if(eventSource == pasteItem){
Transferable contents = clipBoard.getContents(this);
if(contents==null) return;
String text;
text = "";
try{
text=(String)contents.getTransferData(DataFlavor.stringFlavor);
}catch(Exception exception){

}
textArea.replaceRange(text,textArea.getSelectionStart(),textArea.getSelectionEnd());
}else if(eventSource == exitItem){
System.exit(0);
}
}
public void readFile(String fileName){
//读文件
try{
File file = new File(fileName);
FileReader readIn = new FileReader(file);
int size = (int)file.length();
int charsRead = 0;
char[] content = new char[size];
while(readIn.ready())
charsRead += readIn.read(content, charsRead, size-charsRead);
readIn.close();
textArea.setText(new String(content,0,charsRead));
}catch(IOException e){
System.out.println("Error opening File");
}
}
public void writeFile(String fileName){
//写文件
try{
File file = new File(fileName);
FileWriter writeOut = new FileWriter(file);
writeOut.write(textArea.getText());
writeOut.close();
}catch(IOException e){
System.out.println("Error writing file");
}
}
public static void main(String[] args){
Frame frame1 = new EditorFrame();
// 让窗口居中显示
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Dimension frame1Size = frame1.getSize();
if(frame1Size.height > screenSize.height){
frame1Size.height= screenSize.height;
}
if(frame1Size.width > screenSize.width){
frame1Size.width = screenSize.width;
}
frame1.setLocation((screenSize.width - frame1Size.width)/2,(screenSize.height-frame1Size.height)/2);
//===================================
frame1.show();
}
}