導航:首頁 > 編程語言 > java記事本

java記事本

發布時間:2022-01-12 08:36:25

⑴ 如何用java程序編寫一個記事本

import java.io.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.undo.CannotRedoException;
import javax.swing.undo.UndoManager;
import java.util.Date;
import java.text.SimpleDateFormat;

public class Notepad extends JFrame {
// 菜單
JMenuBar menub = new JMenuBar();
// 顯示純文本的多行區域
JTextArea text = new JTextArea();
JMenu files = new JMenu("文件(F)");
JMenu edit = new JMenu("編輯(E)");
JMenu formats = new JMenu("格式(O)");
JMenu help = new JMenu("幫助(H)");
JMenuItem newFile = new JMenuItem("新建(N)");
JMenuItem open = new JMenuItem("打開(O)");
JMenuItem save = new JMenuItem("保存(S)");
JMenuItem saveAs = new JMenuItem("另存為(A)");
JMenuItem exit = new JMenuItem("退出(X)");
JMenuItem undo = new JMenuItem("撤銷(U)");
JMenuItem cut = new JMenuItem("剪切(T)");
JMenuItem = new JMenuItem("復制(C)");
JMenuItem paste = new JMenuItem("粘貼(P)");
JMenuItem selectAll = new JMenuItem("全選(A)");
JMenuItem timeDate = new JMenuItem("時間/日期(D)");
JCheckBoxMenuItem lineWrap = new JCheckBoxMenuItem("自動換行(M)");
JMenuItem fonts = new JMenuItem("字體");
JMenuItem about = new JMenuItem("關於記事本(A)");
JFrame th = this;
String name;
String openedPath = null;
boolean opened = false;
boolean reworked = false;
UndoManager undoManager = new UndoManager();

// 初始化窗體
public Notepad(String name) {
super(name);
this.name = name;
int x, y;
// 得到用戶屏幕大小
Dimension size = Toolkit.getDefaultToolkit().getScreenSize();
x = (size.width - 600) / 2;
y = (size.height - 400) / 2;
setSize(600, 400);
// 讓程序界面顯示在屏幕中央
setLocation(x, y);
// 將此窗口的最小大小設置為一個常量值。
setMinimumSize(new Dimension(250, 150));
setDefaultCloseOperation(EXIT_ON_CLOSE);
}

// 初始化布局
void init() {
files.setMnemonic('F');
edit.setMnemonic('E');
formats.setMnemonic('O');
help.setMnemonic('H');
newFile.setMnemonic('N');
open.setMnemonic('O');
save.setMnemonic('S');
saveAs.setMnemonic('A');
exit.setMnemonic('X');
undo.setMnemonic('U');
cut.setMnemonic('T');
.setMnemonic('C');
paste.setMnemonic('P');
selectAll.setMnemonic('A');
timeDate.setMnemonic('D');
lineWrap.setMnemonic('M');
about.setMnemonic('A');
// 為控制項添加助記符
newFile.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,
InputEvent.CTRL_MASK));
open.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,
InputEvent.CTRL_MASK));
save.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,
InputEvent.CTRL_MASK));
exit.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Q,
InputEvent.CTRL_MASK));
cut.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,
InputEvent.CTRL_MASK));
.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,
InputEvent.CTRL_MASK));
paste.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,
InputEvent.CTRL_MASK));
selectAll.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,
InputEvent.CTRL_MASK));
// 為控制項添加快捷鍵
timeDate.setAccelerator(KeyStroke.getKeyStroke("F5"));

files.add(newFile);
files.add(open);
files.add(save);
files.add(saveAs);
files.addSeparator();
files.add(exit);
edit.add(undo);
edit.addSeparator();
edit.add(cut);
edit.add();
edit.add(paste);
edit.addSeparator();
edit.add(selectAll);
edit.add(timeDate);
formats.add(lineWrap);
formats.add(fonts);
help.add(about);

menub.add(files);
menub.add(edit);
menub.add(formats);
menub.add(help);
setJMenuBar(menub);
getContentPane().add(new JScrollPane(text));

Listen listen = new Listen();
Listen1 listen1 = new Listen1();
// 為控制項添加事件偵聽器
newFile.addActionListener(listen);
undo.addActionListener(listen);
open.addActionListener(listen);
save.addActionListener(listen);
saveAs.addActionListener(listen);
exit.addActionListener(listen);
cut.addActionListener(listen);
.addActionListener(listen);
paste.addActionListener(listen);
selectAll.addActionListener(listen);
timeDate.addActionListener(listen);
lineWrap.addActionListener(listen);
about.addActionListener(listen);
open.addActionListener(listen1);
save.addActionListener(listen1);
saveAs.addActionListener(listen1);
// 暫時沒有實現的功能 :設置字體
//undo功能沒有實現
fonts.setEnabled(false);

}
class Listen implements ActionListener {
// 實現用於一般操作的事件偵聽器
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();
if (source == newFile) {
text.setText("");
// 設置標題
th.setTitle(name);
openedPath = null;
opened = false;
} else if (source == exit)
setVisible(false);
else if (source == undo)
try {
//此功能沒有實現 撤銷要用棧?
// undo.setEnabled(undoManager.canUndo());
undoManager.undo();
} catch (CannotRedoException cre) {
cre.printStackTrace();
}
else if (source == selectAll)
text.selectAll();
else if (source == cut)
text.cut();
else if (source == )
text.();
else if (source == paste)
text.paste();
else if (source == lineWrap)
// 設置文本區的換行策略(獲取文本區的換行策略)
text.setLineWrap(!text.getLineWrap());
else if (source == about) {
String message = "--------\n版本:1.0\n作者:時超" +
"\n撤銷功能要用堆棧存貯操作" +
"\n還有字體格式"+
"\n暫時沒有實現" +
"\n\n感謝您的使用";
JOptionPane.showMessageDialog(th, message, "關於",
JOptionPane.PLAIN_MESSAGE);
} else if (source == timeDate) {
Date nowTime = new Date();
SimpleDateFormat times = new SimpleDateFormat(
"HH:mm yyyy-MM-dd");
text.insert(times.format(nowTime), text.getCaretPosition());
}
}
}
class Listen1 implements ActionListener {
// 實現用於對文件進行操作的事件偵聽器
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();
// 打開文件事件
if (source == open) {
// 顯示對話窗口 以便選擇文件
FileDialog openFile = new FileDialog(th, "打開文件",
FileDialog.LOAD);
openFile.setVisible(true);
// 獲取文件路徑
String filePath = openFile.getDirectory() + openFile.getFile();
try {
FileInputStream fis = new FileInputStream(filePath);
byte[] content = new byte[fis.available()];
fis.read(content);
text.setText(new String(content));
// 設置 TextComponent 的文本插入符的位置
text.setCaretPosition(0);
if (openFile.getFile() != null) {
th.setTitle(openFile.getFile() + name);
openedPath = filePath;
opened = true;
}
fis.close();
} catch (Exception ex) {
ex.printStackTrace();
}
opened = true;
}
// 保存及另存為事件
else if (source == save || source == saveAs) {
String savePath = openedPath;
if (savePath == null || source == saveAs) {
// 如果 mode 的值為 LOAD,那麼文件對話框將查找要讀取的文件,所顯示的文件是當前目錄中的文件
// 如果 mode 的值為 SAVE,則文件對話框將查找要寫入文件的位置。
FileDialog saveFile = new FileDialog(th, "保存文件",
FileDialog.SAVE);
saveFile.setVisible(true);
savePath = saveFile.getDirectory() + saveFile.getFile();
}
try {
FileOutputStream fos = new FileOutputStream(savePath);
fos.write(text.getText().getBytes());
fos.close();
} catch (Exception ex) {
ex.printStackTrace();
}
if (source == save)
openedPath = savePath;
}
}
}
public static void main(String[] args) {
try {
// 使用當前線程的上下文類載入器載入給定類名稱所指定的 LookAndFeel
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (Exception e) {
System.err.println("Couldn't use the system look and feel:" + e);
}
String name = ("--記事本 版本1.0--");
Notepad note = new Notepad(name);
note.init();
note.setVisible(true);
}
}

⑵ java記事本源代碼

給你個做好了的Java的源程序的記事本,自己看看就行了的,不怎麼難的···
import java.awt.*;
import java.awt.event.*;
import java.io.*;

import javax.swing.*;

public class MyNotepad implements ActionListener{
private JFrame frame=new JFrame("新記事本");
private JTextArea jta=new JTextArea();
private String result="";
private boolean flag=true;
private File f;
private JButton jb=new JButton("開始");
private JTextField jtf=new JTextField(15);
private JTextField jt=new JTextField(15);
private JButton jbt=new JButton("替換為");
private JButton jba=new JButton("全部替換");
private Icon ic=new ImageIcon("D:\\java課堂筆記\\GUI\\11.gif");
private String value;
private int start=0;
private JFrame jf=new JFrame("查找");
private JFrame jfc=new JFrame("替換");

@Override
public void actionPerformed(ActionEvent e) {
String comm=e.getActionCommand();
if("新建".equals(comm)){
if(!(frame.getTitle().equals("新記事本"))){
if(!flag){
write();
newNew();
}else{
JFileChooser jfc=new JFileChooser("D:\\java課堂筆記");
int returnVal = jfc.showDialog(null,"保存為");
if(returnVal == JFileChooser.APPROVE_OPTION) {//選擇文件後再執行下面的語句,保證了程序的健壯性
f=jfc.getSelectedFile();
flag=false;
write();
}
}
}else if(!(jta.getText().isEmpty())){
JFileChooser jfc=new JFileChooser("D:\\java課堂筆記");
int returnVal = jfc.showDialog(null,"保存為");
if(returnVal == JFileChooser.APPROVE_OPTION) {//選擇文件後再執行下面的語句,保證了程序的健壯性
f=jfc.getSelectedFile();
flag=false;
write();
newNew();
}
}else{
newNew();
}
}else if("打開".equals(comm)){
JFileChooser jfc=new JFileChooser("D:\\java課堂筆記");
jfc.setDialogType(JFileChooser.OPEN_DIALOG);
int returnVal = jfc.showOpenDialog(null);
if(returnVal == JFileChooser.APPROVE_OPTION) {//選擇文件後再執行下面的語句,保證了程序的健壯性
f=jfc.getSelectedFile();
frame.setTitle(f.getName());
result=read();
flag=false;
value=result;
jta.setText(result);
}
}else if("保存".equals(comm)){
JFileChooser jfc=new JFileChooser("D:\\java課堂筆記");
if(flag){
int returnVal = jfc.showDialog(null,"保存為");
if(returnVal == JFileChooser.APPROVE_OPTION) {//選擇文件後再執行下面的語句,保證了程序的健壯性
f=jfc.getSelectedFile();
flag=false;
write();
}
}else{
write();
}
}else if("另存".equals(comm)){
JFileChooser jfc=new JFileChooser("D:\\java課堂筆記");
int returnVal = jfc.showDialog(null,"另存");
if(returnVal == JFileChooser.APPROVE_OPTION) {//選擇文件後再執行下面的語句,保證了程序的健壯性
f=jfc.getSelectedFile();
write();
}
}else if("退出".equals(comm)){
System.exit(0);
}else if("撤銷".equals(comm)){
jta.setText(value);
}else if("剪切".equals(comm)){
value=jta.getText();
jta.cut();
}else if("復制".equals(comm)){
jta.();
}else if("粘貼".equals(comm)){
value=jta.getText();
jta.paste();
}else if("刪除".equals(comm)){
value=jta.getText();
jta.replaceSelection(null);
}else if("全選".equals(comm)){
jta.selectAll();
}else if("查找".equals(comm)){
value=jta.getText();
jf.add(jtf,BorderLayout.CENTER);
jf.add(jb,BorderLayout.SOUTH);

jf.setLocation(300,300);
jf.pack();
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}else if("替換".equals(comm)){
value=jta.getText();
GridLayout gl=new GridLayout(3,3);
JLabel jl1=new JLabel("查找內容:");
JLabel jl2=new JLabel("替換為:");
jfc.setLayout(gl);
jfc.add(jl1);
jfc.add(jtf);
jfc.add(jb);
jfc.add(jl2);
jfc.add(jt);
jfc.add(jbt);
JLabel jl3=new JLabel();
JLabel jl4=new JLabel();
jfc.add(jl3);
jfc.add(jl4);
jfc.add(jba);

jfc.setLocation(300,300);
jfc.pack();
jfc.setVisible(true);
jfc.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}else if("版本".equals(comm)){
JDialog jd=new JDialog(frame,"關於對話框");
jd.setSize(200,200);
JLabel l=new JLabel("哈哈哈哈哈哈哈哈哈哈呵呵呵呵呵呵呵呵呵呵呵呵呵");
jd.add(l,BorderLayout.CENTER);
jd.setLocation(100,200);
jd.setSize(300,300);
jd.setVisible(true);
// jd.pack();
jd.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
}else if("開始".equals(comm)||"下一個".equals(comm)){
String temp=jtf.getText();
int s=value.indexOf(temp,start);
if(value.indexOf(temp,start)!=-1){
jta.setSelectionStart(s);
jta.setSelectionEnd(s+temp.length());
jta.setSelectedTextColor(Color.GREEN);
start=s+1;
jb.setText("下一個");
// value=value.substring(s+temp.length());//不能截取字串
}else {
JOptionPane.showMessageDialog(jf, "查找完畢!", "提示", 0, ic);
jf.dispose();
}
}else if("替換為".equals(comm)){
String temp=jtf.getText();
int s=value.indexOf(temp,start);
if(value.indexOf(temp,start)!=-1){
jta.setSelectionStart(s);
jta.setSelectionEnd(s+temp.length());
jta.setSelectedTextColor(Color.GREEN);
start=s+1;
jta.replaceSelection(jt.getText());
}else {
JOptionPane.showMessageDialog(jf, "查找完畢!", "提示", 0, ic);
jf.dispose();
}
}else if("全部替換".equals(comm)){
String temp=jta.getText();
temp=temp.replaceAll(jtf.getText(), jt.getText());
jta.setText(temp);

}
}
public String read(){
String temp="";
try {
FileInputStream fis = new FileInputStream(f.getAbsolutePath());
byte[] b=new byte[1024];
while(true){
int num=fis.read(b);
if(num==-1)break;
temp=temp+new String(b,0,num);
}
fis.close();
} catch (Exception e1) {
e1.printStackTrace();
}
return temp;
}

public void write(){
try {
FileOutputStream fos=new FileOutputStream(f);
fos.write(jta.getText().getBytes());
fos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public void newNew(){
frame.dispose();
new MyNotepad();
flag=true;
}
public MyNotepad(){
JMenuBar jmb=new JMenuBar();
String[] menuLab={"文件","編輯","幫助"};
String[][] menuItemLab={{"新建","打開","保存","另存","退出"},
{"撤銷","剪切","復制","粘貼","刪除","全選","查找","替換"},
{"版本"}};
for(int i=0;i<menuLab.length;i++){
JMenu menu=new JMenu(menuLab[i]);
jmb.add(menu);
for(int j=0;j<menuItemLab[i].length;j++){
JMenuItem jmi=new JMenuItem(menuItemLab[i][j]);
menu.add(jmi);
jmi.addActionListener(this);
}
}
frame.setJMenuBar(jmb);
jta.setLineWrap(true);//自動換行
JScrollPane jsp=new JScrollPane(jta);//滾動窗口面板
frame.add(jsp);

jb.addActionListener(this);
jbt.addActionListener(this);
jba.addActionListener(this);

frame.setLocation(200,50);
frame.setSize(620,660);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new MyNotepad();
}
}

⑶ java編寫簡單記事本

方法/步驟
下載JDK,並安裝成功,CMD測試Java環境安裝成功。出現如下提示則Java環境安裝成功

打開mycelipse進入主界面,點擊左上角file--new---java project,新建一個Java項目,項目名字任意取,這里我取名為note--然後點擊完成,創建Java項目

然後右鍵項目下的src--new---package,新建一個包,包名我定為notetest,然後點擊完成

然後右鍵我們建立好的包notetest--new--class,包名為Note,點擊完成

首先我們想導入工程所需要的包,以便編寫程序時進行調用
package notepad;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.BufferedReader;
import java.io.BufferedWriter;

首先定義好編寫程序時變數,我們設為成員變數方便以後調用
public class Notepad{
//屏幕解析度
int width = Toolkit.getDefaultToolkit().getScreenSize().width;
int height = Toolkit.getDefaultToolkit().getScreenSize().height;
//窗體
private Frame frm ;

//顯示內容多行文本
private TextArea notetext;
//記事本菜單
private MenuBar mb;
//菜單
private Menu m ;
//菜單項
private MenuItem open,save;

為程序創建組件--Frame--菜單欄目--文本框TextArea
public Notepad(){init();}

private void init(){
frm = new Frame("模擬記事本");

//設置菜單
mb = new MenuBar();
m = new Menu("文件");

//顯示文件的地方
notetext = new TextArea();
notetext.setBounds(30, 50, 750, 500);
frm.add(notetext);
myEvent();

為控制項和按鈕添加監聽事件
private void myEvent() {
//打開菜單的事件處理
open.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
//判斷路徑和文件名是否為空 如果為空結束程序
if(dir == null || name == null)

//如果不為空講路徑名和文件名封裝到File對象里

file = new File(dir,name);

//使用字元緩沖讀取文件

BufferedReader bfr = null;

try {
bfr = new BufferedReader(new FileReader(file));
});
save.addActionListener(new ActionListener(){

//獲取路徑和文件名

String dir =fd.getDirectory();
String name = fd.getFile();
//如果不為空講路徑名和文件名封裝到File對象里
file = new File(dir,name);
}

BufferedWriter bfr= null;
}

});
}
}

然後創建主方法,開始測試程序,新建一個NoteDemo類
package notepad;

public class NoteDemo {
public static void main(String[] args) {
new Notepad();
}

}

⑷ java簡單記事本代碼

以下代碼是一個完整的實現,你只要復制過去就可以了~~

import java.io.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.*;
import java.text.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.undo.*;
import javax.swing.text.*;

public class Start
{
public static void main(String args[])
{
new TextPad();
}
}

class TextPad extends JFrame implements ActionListener
{

JTextArea jta=new JTextArea("小廖記事本:)",18,52);
JCheckBoxMenuItem mto1=new JCheckBoxMenuItem("自動換行",true);
String ss1=jta.getText();
UndoableEditListener ue=new UndoHander();
UndoManager undo = new UndoManager();
int StartFindPos=0,a=0,b=0;
GridBagConstraints gbc=new GridBagConstraints();
//Dimension dd=new Dimension();
// jta.getDocument().addUndoableEditListener(ue);
public TextPad()
{
//MyMenuListener ml=new MyMenuListener();
//JTextArea jta=new JTextArea("This is my textpad",18,52);

//System.out.println(dd.getHeight());
//System.out.println(dd.getWidth());

//System.out.println(this.getHeight());
//System.out.println(this.getWidth());
//System.out.println("OK");
this.setTitle("一個功能比較齊全的JAVA記事本");
this.setLocation(180,100);
jta.setLineWrap(true);
jta.setWrapStyleWord(true);
JPanel jp=new JPanel();
JScrollPane jsp=new JScrollPane(jta);

jp.add(jsp);
//Rectangle rt=new Rectangle(0,0,this.getWidth(),this.getHeight());
//jsp.setBounds(rt);
//System.out.println(this.getHeight());
//System.out.println(this.getWidth());
JMenu mf=new JMenu("文件(F)");
JMenuItem mtf1=new JMenuItem("新建");
mtf1.addActionListener(this);
JMenuItem mtf2=new JMenuItem("打開");
//mtf2.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_MASK));
mtf2.addActionListener(this);
JMenuItem mtf3=new JMenuItem("保存");
//mtf3.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK));
mtf3.addActionListener(this);
JMenuItem mtf4=new JMenuItem("另存為");
mtf4.addActionListener(this);
JMenuItem mtf5=new JMenuItem("退出");
mtf5.addActionListener(this);
JMenu me=new JMenu("編輯(E)");
JMenuItem mte1=new JMenuItem("撤消");
mte1.addActionListener(this);
jta.getDocument().addUndoableEditListener(ue);
if(undo.canUndo())
{
mte1.setEnabled(false);
}
JMenuItem mte2=new JMenuItem("剪切");
mte2.addActionListener(this);
JMenuItem mte3=new JMenuItem("復制");
mte3.addActionListener(this);
JMenuItem mte4=new JMenuItem("粘貼");
mte4.addActionListener(this);
//JMenuItem mte5=new JMenuItem("刪除");
//mte5.addActionListener(this);
JMenuItem mte6=new JMenuItem("查找");
mte6.addActionListener(this);
//JMenuItem mte7=new JMenuItem("查找下一個");
JMenuItem mte8=new JMenuItem("替換");
mte8.addActionListener(this);
//JMenuItem mte9=new JMenuItem("轉到");
JMenuItem mte10=new JMenuItem("全選");
mte10.addActionListener(this);
JMenuItem mte11=new JMenuItem("日期/時間");
mte11.addActionListener(this);
JMenu mo=new JMenu("格式(O)");
//JCheckBoxMenuItem mto1=new JCheckBoxMenuItem("自動換行(W)");
mto1.addActionListener(this);
JMenuItem mto2=new JMenuItem("字體");
mto2.addActionListener(this);
JMenu mv=new JMenu("查看(V)");
JMenuItem mtv1=new JMenuItem("狀態欄");
mtv1.setEnabled(false);
JMenu mh=new JMenu("幫助(H)");
JMenuItem mth1=new JMenuItem("關於記事本");
mth1.addActionListener(this);
JMenuBar mb=new JMenuBar();
this.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}
);
mb.add(mf);
mb.add(me);
mb.add(mo);
mb.add(mv);
mb.add(mh);
this.setJMenuBar(mb);
mf.add(mtf1);
mf.add(mtf2);
mf.add(mtf3);
mf.add(mtf4);
mf.addSeparator();
mf.add(mtf5);
me.add(mte1);
me.addSeparator();
me.add(mte2);
me.add(mte3);
me.add(mte4);
//me.add(mte5);
me.addSeparator();
me.add(mte6);
//me.add(mte7);
me.add(mte8);
//me.add(mte9);
me.addSeparator();
me.add(mte10);
me.add(mte11);
mo.add(mto1);
mo.add(mto2);
mv.add(mtv1);
mh.add(mth1);
this.getContentPane().add(jsp);
this.setSize(600,400);
this.setResizable(true);
this.setVisible(true);
}
public void actionPerformed(ActionEvent e)
{

if(e.getActionCommand().equals("打開"))
{
try
{
Frame f=new Frame();
FileDialog fd=new FileDialog(f,"打開文件",FileDialog.LOAD);
fd.setVisible(true);
String fpath=fd.getDirectory();
String fname=fd.getFile();
BufferedReader br=new BufferedReader(new FileReader(fpath+fname));
jta.setText("");
String s=br.readLine();
while(s!=null)
{
jta.append(s+"\n");
s=br.readLine();
}
br.close();
}
catch(Exception ex)
{
}
}

if(e.getActionCommand().equals("保存"))
{
String fns=null;
Frame f=new Frame("保存");
FileDialog fd=new FileDialog(f,"保存文件",FileDialog.SAVE);
fd.setFile("*.txt");
fd.setVisible(true);
try
{
String savepath=fd.getDirectory();
String savename=fd.getFile();
if(savename!=null)
{
PrintWriter pw=new PrintWriter(new BufferedWriter(new FileWriter(savepath+savename)));
pw.write(jta.getText(),0,jta.getText().length());
pw.flush();
}
}
catch(Exception esave)
{
}
}
if(e.getActionCommand().equals("新建"))
{
jta.setText("");
}
if(e.getActionCommand().equals("另存為"))
{
Frame f=new Frame("保存");
FileDialog fd=new FileDialog(f,"文件另存為",FileDialog.SAVE);
fd.setVisible(true);
try
{
String savepath=fd.getDirectory();
String savename=fd.getFile();
if(savename!=null)
{
PrintWriter pw=new PrintWriter(new BufferedWriter(new FileWriter(savepath+savename)));
pw.write(jta.getText(),0,jta.getText().length());
pw.flush();
}
}
catch(Exception esave)
{
}
}
if(e.getActionCommand().equals("退出"))
{
String ss2=jta.getText();
if(!ss1.equals(ss2))
{
System.out.println("File is changed.");
}
System.exit(0);
}
if(e.getActionCommand().equals("撤消"))
{
try
{
undo.undo();
//System.out.println(undo.canUndo());
}
catch(Exception eundo)
{
}
}
if(e.getActionCommand().equals("剪切"))
{
jta.cut();
}
if(e.getActionCommand().equals("復制"))
{
jta.();
}
if(e.getActionCommand().equals("粘貼"))
{
jta.paste();
}
if(e.getActionCommand().equals("刪除"))
{

}
if(e.getActionCommand().equals("全選"))
{
jta.selectAll();
}
if(e.getActionCommand().equals("查找"))
{
try
{
final JDialog jd=new JDialog(this,"查找",true);
GridBagLayout gbl=new GridBagLayout();
GridBagConstraints gbc=new GridBagConstraints();
gbc.weightx=0.5;
gbc.weighty=0.5;
gbc.gridwidth=1;
gbc.gridheight=1;
jd.getContentPane().setLayout(gbl);
jd.setSize(380,100);
jd.setResizable(false);
//jd.(true);
final JTextField jtf=new JTextField(15);
JLabel jlFind=new JLabel("查找內容:");
jd.getContentPane().add(jlFind);
JButton jbFind=new JButton("查找");

jbFind.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent efind)
{
String strA=jta.getText();
String strB=jtf.getText();
if(a>=0)
{
a=strA.indexOf(strB,StartFindPos);

b=strB.length();
StartFindPos=a+b;
if(a==-1)
{
JOptionPane.showMessageDialog(null, "沒有您要查找的信息", "查找結果",1);
a=0;
StartFindPos=0;
}
jta.select(a,StartFindPos);
}
}
}
);
JButton jbCancel=new JButton("取消");
jbCancel.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent ejb)
{
jd.dispose();
}
}
);
jd.getContentPane().add(jtf);
jd.getContentPane().add(jbFind);
jd.getContentPane().add(jbCancel);
//jd.setResizable(false);
jd.setLocation(240,200);
jd.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
jd.setVisible(true);
}
catch(Exception efind)
{
}
}
if(e.getActionCommand().equals("替換"))
{
final JDialog jd=new JDialog(this,"替換",true);
GridBagLayout gbl=new GridBagLayout();
GridBagConstraints gbc=new GridBagConstraints();
gbc.weightx=1;
gbc.weighty=1;
gbc.gridwidth=1;
gbc.gridheight=1;
JLabel jlFind=new JLabel("查找:");
JLabel jp=new JLabel("替換內容:");
final JTextField jtf=new JTextField(15);
final JTextField jtf1=new JTextField(15);
jd.getContentPane().setLayout(gbl);
jd.setSize(330,150);
jd.setResizable(false);
final JButton jbReplace=new JButton("替換");
final JButton jbReplaceAll=new JButton("替換所有");
final JButton jbCancel=new JButton("取消");
final JButton jbFind=new JButton("查找");
gbc.gridx=0;
gbc.gridy=0;
jd.getContentPane().add(jlFind,gbc);
gbc.gridx=1;
gbc.gridy=0;
jd.getContentPane().add(jtf1,gbc);
gbc.gridx=2;
gbc.gridy=0;
jd.getContentPane().add(jbFind,gbc);
gbc.gridx=0;
gbc.gridy=1;
jd.getContentPane().add(jp,gbc);
gbc.gridx=1;
gbc.gridy=1;
jd.getContentPane().add(jtf,gbc);
gbc.gridx=2;
gbc.gridy=1;
jd.getContentPane().add(jbReplace,gbc);
gbc.gridx=2;
gbc.gridy=2;
jd.getContentPane().add(jbReplaceAll,gbc);
gbc.gridx=2;
gbc.gridy=3;
jd.getContentPane().add(jbCancel,gbc);
jbFind.addActionListener(new ActionListener()
{

public void actionPerformed(ActionEvent efind)
{
String strA=jta.getText();
String strB=jtf1.getText();
if(a>=0)
{
a=strA.indexOf(strB,StartFindPos);
//System.out.println(a+b);
b=strB.length();
StartFindPos=a+b;
if(a==-1)
{
JOptionPane.showMessageDialog(null, "沒有您要查找的信息", "查找結果",1);
a=0;
StartFindPos=0;
}
jta.select(a,StartFindPos);
//System.out.println(StartFindPos);
}
}
}
);
jbReplace.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
if(e.getActionCommand().equals("替換"))
{
String strRepleace=jtf.getText();
jta.replaceSelection(strRepleace);
}
}
}
);
jbReplaceAll.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{

while(a>-1)
{
String strA=jta.getText();
String strB=jtf1.getText();
a=strA.indexOf(strB,StartFindPos);
if(a==-1)
{
break;
}
//System.out.println(a+b);
b=strB.length();
StartFindPos=a+b;
//System.out.println(StartFindPos);
jta.select(a,StartFindPos);
//System.out.println(StartFindPos);
String strRepleaceAll=jtf.getText();
jta.replaceSelection(strRepleaceAll);
StartFindPos=a+b;

}
JOptionPane.showMessageDialog(null, "全部替換完畢", "替換內容",1);
a=0;
StartFindPos=0;
}
}
);
jbCancel.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent ejb)
{
jd.dispose();
}
}
);
jd.setLocation(240,200);
jd.setVisible(true);
jd.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
}
if(e.getActionCommand().equals("日期/時間"))
{
final JDialog jd=new JDialog(this,"插入日期");
JPanel jp1=new JPanel();
jp1.setLayout(new FlowLayout(FlowLayout.LEFT));
final JTextField jtf=new JTextField(10);
JButton jbOK=new JButton("確定");
JButton jbCancel=new JButton("取消");
//Calendar cl=Calendar.getInstance();
//DateFormat df=DateFormat.getInstance();
//String sdate1=df.format(cl.getTime());
//jtf.setText(sdate1);
jp1.add(jtf);
jp1.add(jbOK);
jp1.add(jbCancel);
jd.getContentPane().add(jp1,"North");
JPanel jp2=new JPanel();
jp2.setLayout(new FlowLayout(FlowLayout.LEFT));
final JCheckBox jcb1=new JCheckBox("格式一");
final JCheckBox jcb2=new JCheckBox("格式二");
final JCheckBox jcb3=new JCheckBox("格式三");
jp2.add(jcb1);
jp2.add(jcb2);
jp2.add(jcb3);
jd.getContentPane().add(jp2,"Center");
jd.setSize(220,120);
jd.setResizable(false);
jd.setLocation(240,200);
final SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
Calendar cl=Calendar.getInstance();
DateFormat df=DateFormat.getInstance();
final String sdate=df.format(cl.getTime());
jcb1.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
if(e.getActionCommand().equals("格式一"))
{
if(jcb1.isSelected())
{
try
{
SimpleDateFormat sdf1=new SimpleDateFormat("yy年MM月dd日");
Date d=sdf.parse(sdate);
jtf.setText(sdf1.format(d));
jcb2.setEnabled(false);
jcb3.setEnabled(false);
}
catch(Exception estyle1)
{
estyle1.printStackTrace();
}
}
else
{
jcb2.setEnabled(true);
jcb3.setEnabled(true);
}
try
{
System.out.println(jta.getLineStartOffset(3));
//System.out.println(jta.getLineOfOffset(346));
}
catch(Exception eee)
{
}
}
}
}
);
jcb2.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
if(e.getActionCommand().equals("格式二"))
{
if(jcb2.isSelected())
{
try
{
SimpleDateFormat sdf1=new SimpleDateFormat("yy/MM/dd");
Date d=sdf.parse(sdate);
jtf.setText(sdf1.format(d));
jcb1.setEnabled(false);
jcb3.setEnabled(false);
}
catch(Exception estyle2)
{
estyle2.printStackTrace();
}
}
else
{
jcb1.setEnabled(true);
jcb3.setEnabled(true);
}
//System.out.println(jcb1.isSelected());
}
}
}
);
jcb3.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
if(e.getActionCommand().equals("格式三"))
{
if(jcb3.isSelected())
{
jtf.setText(sdate);
jcb1.setEnabled(false);
jcb2.setEnabled(false);
}
else
{
jcb1.setEnabled(true);
jcb2.setEnabled(true);
}
//System.out.println(jcb1.isSelected());
}
}
}
);
jbOK.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
if(e.getActionCommand().equals("確定"))
{
int pos=jta.getCaretPosition();
jta.insert(jtf.getText(),pos);
}
}
}
);
jbCancel.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent ejb)
{
jd.dispose();
}
}
);
jd.setVisible(true);
jd.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
}
if(e.getActionCommand().equals("自動換行"))
{
if(mto1.getState())
{
jta.setLineWrap(true);
jta.setWrapStyleWord(true);
}
else
{
jta.setLineWrap(false);
jta.setWrapStyleWord(false);
}
//System.out.println("OK");
}
if(e.getActionCommand().equals("字體"))
{
final JDialog jd=new JDialog(this,"字體設置");
jd.setLocation(240,200);
//final JFrame jfontview=new JFrame();
GridBagLayout gbl=new GridBagLayout();
GridBagConstraints gbc=new GridBagConstraints();
JButton jbOK=new JButton("確定");
JButton jbCancel=new JButton("取消");
JTextField jtf1=new JTextField(6);
final JTextArea jtaview=new JTextArea(4,8);
//jfontview.getContentPane().add(jtaview);
final JTextField jtf2=new JTextField(6);
final JTextField jtf3=new JTextField(3);
JComboBox jcb1=new JComboBox();
final JComboBox jcb2=new JComboBox();
jcb2.addItem("BOLD");
jcb2.addItem("ITALIC");
jcb2.addItem("PLAIN");
//jcb2.addItem("BOLDITALIC");
jcb2.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
jtf2.setText((String)jcb2.getSelectedItem());
}
}
);
final JComboBox jcb3=new JComboBox();
jcb3.addItem("14");
jcb3.addItem("18");
jcb3.addItem("22");
jcb3.addItem("26");
jcb3.addItem("30");
jcb3.addItem("34");
jcb3.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
jtf3.setText((String)jcb3.getSelectedItem());
//jtaview.setText("SS");

// int fontsizeview=Integer.parseInt((String)jcb3.getSelectedItem());
//Font fontview=new Font("字體預覽",Font.BOLD,fontsizeview);
//jtaview.setFont(fontview);
//jtaview.setEditable(false);
}
}
);
gbc.gridheight=1;
gbc.gridwidth=1;
//gbc.gridx=1;
//gbc.gridy=0;
gbc.weightx=0.5;
gbc.weighty=0.5;
jd.getContentPane().setLayout(gbl);
//JLabel jl1=new JLabel("預覽:");
JLabel jl2=new JLabel("字型:");
JLabel jl3=new JLabel("大小:");
gbc.gridx=0;
gbc.gridy=0;
jd.getContentPane().add(jl2,gbc);
gbc.gridx=2;
gbc.gridy=0;
jd.getContentPane().add(jl3,gbc);
//gbc.gridx=4;
//gbc.gridy=0;
//jd.getContentPane().add(jl3,gbc);
gbc.gridx=0;
gbc.gridy=1;
jd.getContentPane().add(jtf2,gbc);
gbc.gridx=2;
gbc.gridy=1;
jd.getContentPane().add(jtf3,gbc);
//gbc.gridx=4;
// gbc.gridy=1;
//jd.getContentPane().add(jtf3,gbc);
gbc.gridx=0;
gbc.gridy=2;
jd.getContentPane().add(jcb2,gbc);
gbc.gridx=2;
gbc.gridy=2;
jd.getContentPane().add(jcb3,gbc);
//gbc.gridx=4;
//gbc.gridy=2;
//jd.getContentPane().add(jcb3,gbc);
gbc.gridx=4;
gbc.gridy=1;
jd.getContentPane().add(jbOK,gbc);
gbc.gridx=4;
gbc.gridy=2;
jd.getContentPane().add(jbCancel,gbc);
jbOK.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
if(jtf2.getText().equals("PLAIN"))
{
int fontsize=Integer.parseInt(jtf3.getText());
int fontstyle=0;
Font f=new Font("字體設置",fontstyle,fontsize);
jta.setFont(f);

// System.out.println(f.getFont("楷體_GB2312").getFontName());
}
if(jtf2.getText().equals("BOLD"))
{
int fontsize=Integer.parseInt(jtf3.getText());
int fontstyle=1;
Font f=new Font("字體設置",fontstyle,fontsize);
jta.setFont(f);
}
if(jtf2.getText().equals("ITALIC"))
{
int fontsize=Integer.parseInt(jtf3.getText());
int fontstyle=2;
Font f=new Font("字體設置",fontstyle,fontsize);
jta.setFont(f);
}
jd.dispose();
//System.out.println(fontstyle);
}
}
);
jbCancel.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
jd.dispose();
}
}
);
jd.setSize(200,120);
jd.setResizable(false);
jd.setVisible(true);
jd.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
}
if(e.getActionCommand().equals("關於記事本"))
{
JOptionPane jop=new JOptionPane(null,JOptionPane.INFORMATION_MESSAGE);
jop.showMessageDialog(null,"小廖記事本","關於記事本",JOptionPane.OK_OPTION);
//System.out.println("OK");
}

}
class UndoHander implements UndoableEditListener
{
public void undoableEditHappened(UndoableEditEvent eundo)
{
undo.addEdit(eundo.getEdit());
}

}
}

⑸ Java記事本

Java是由Sun公司於1995年5月推出的面向對象的程序設計語言。Java繼承了C++語言面向對象技術的核心,又舍棄了C++語言中的指針、運算符重載以及多重繼承的特性,同時引入了泛型編程、類型安全的枚舉等特性,使Java成為簡單、面向對象、分布式、解釋性、健壯、安全與系統無關、可移植、高性能、多線程和動態的語言。 隨著互聯網的迅猛發展,Java已經成為重要的網路編程語言,被廣泛應用於企業級Web應用開發和移動應用開發。
對於您的java記事本我是真沒見過

⑹ 如何用記事本進行java編程

1.安裝JDK
下載地址:http://cn.sun.com/
2:配置環境變數
方法:
安裝後需要設置環境變數,在我的電腦--》屬性--->高級--->環境變數
加入:JAVA_HOME = C:\Program Files\Java\jdk1.5.0_06
然後把JAVA_HOME 加入path中就可以了
PATH=F:\oracle\ora92\bin;C:\Program Files\Oracle\jre\1.3.1\bin;C:\Program Files\Oracle\jre\1.1.8\bin;%JAVA_HOME%\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\PROGRA~1\ULTRAE~1;D:\soft\StyleReportEE\bin

3:工具初學者可以用記事本,(也可以用eclipse,netbeans)
編寫好後報存成 .java文件
4.編譯
在DOS窗口下找到你保存的JAVA文件目錄,執行:javac *.java
5:運行
在dos窗口下找到你編譯的文件目錄執行: java *

這樣你就可以看到你寫的程序的執行結果。

剛開始學Java,用「JDK+記事本」就行了,JDK提供Java開發工具包和運行環境。先下載一個JDK(http://blog.chinaunix.net/u2/80678/showart_1315214.html)裝上(還有設置環境變數的問題,這里先不說),用記事本編輯Java代碼,在命令行提示窗口用javac 命令編譯,用java 命令執行就可以了。
當你對java程序有個整體感官的認識後,接下來就可以用一個IDE了,即集成開發環境,網上有很多IDE,JBuilder、JCreater以及著名的eclipse,推薦用eclipse,在www.eclipse.org下載,然後自己往裡面安裝——你需要但還沒安裝的「插件」(因為,本身已有很多插件,一般情況可以滿足你的需要),最好不要用通過第三方公司進行過集成的 eclipse,比如Lomboz(它的內核也是eclipse,如果你需要Lomboz,則可以把它作為一個插件安裝到eclipse中),這樣,可以直接感覺eclipse的架構和魅力。
最後,要說的就是,在第一個階段不要停留太久,要在適當的時候過渡到eclipse;所有上面是一個過程。

⑺ 如何用記事本編寫java程序

首先右擊滑鼠,新建一個文本文檔。
更改文本文檔的後綴名為 .java 。注意文件名必須和類名相同。
如果你的電腦沒有顯示後綴名的話需要對電腦進行一定的設置
打開計算機——組織——文件夾選項——查看——將隱藏文件夾選項取消勾選即可。

建議將這個選項取消勾選,有很多的惡意程序會侵入我們的電腦,取消勾選可以很好的查看病毒等文件的類型。
右擊建好的文檔,選擇編輯即可進行java的編寫。

在編寫的時候我們有一定的格式,java語言的格式是為了我們日後更改程序方便而規定的,我們一定要遵循這種格式編寫。

測試運行java程序

打開運行命令,也可以直接在開菜單中輸入CMD調用命令窗口。

你的文件保存在哪裡就將你的文件目錄輸入到命令提示符窗口中,例如我的是D盤根目錄,所以我輸入「d:」。

編譯java文件,生成class文件。

在命令提示符中輸入「javac 文件名.java」,我的文件名為A,所以輸入javac A.java然後回車,等待編譯。

運行文件。

繼續輸入「java 文件名」然後回車就可以運行我們寫好的文件了。

⑻ 用JAVA編寫一個記事本

不添加監聽的記事本不是好的記事本:

http://hi..com/shy2850/blog/item/3d15b409797d34dc63d98662.html

呵呵,雖然不符合要求,但是基本功能還是很值得借鑒的。

⑼ java記事本怎麼寫呀

下面是一個簡單的記事本程序:
import java.awt.*;
import java.awt.event.*;
import java.lang.String.*;
import java.awt.datatransfer.*;//數據傳送
import java.util.*;
public class Notepad
{public static void main(String args[])
{MyMenuFrame mf=new MyMenuFrame();//定義主類
mf.setSize(new Dimension(300,200));//用setSize()方法指定窗口的初始大小
mf.setVisible(true);
}
}

class MyMenuFrame extends Frame implements ActionListener//定義窗口
{
Clipboard clipboard;//定義剪切板對象
FileDialog filedialog_save,filedialog_load;//定義文件對話框
MenuBar m_MenuBar;//定義菜單條
Menu menuFile,menuEdit,menuStyle,menuSearch,menuHelp;//定義菜單項
MenuItem mi_File_New,mi_File_Open,mi_File_Save,mi_file_Savaas,mi_File_Close,mi_File_Exit,
mi_Edit_Ce,mi_Edit_Copy,mi_Edit_Cut,mi_Edit_Paste,
mi_Edit_Style,mi_Style_Font,mi_Style_Auto,
mi_Search_sphere,
mi_Help_Helptopic,mi_Help_About;
TextArea text;
MyMenuFrame( )//構造方法
{
super("記事本");//指定窗口標題
text=new TextArea(20,20);
add(text);
clipboard = null;
clipboard = getToolkit().getSystemClipboard();//獲取系統剪切板

filedialog_save=new FileDialog(this,"保存文件對話框",FileDialog.SAVE);
filedialog_save.setVisible(false);
filedialog_load=new FileDialog(this,"打開文件對話框",FileDialog.LOAD);
filedialog_load.setVisible(false);
m_MenuBar=new MenuBar( );
menuFile=new Menu("文件");//創建菜單項,創建菜單子項並初始化
MenuItem mi_File_New=new MenuItem("新建");
MenuItem mi_File_Open=new MenuItem("打開");
MenuItem mi_File_Save=new MenuItem("保存");
MenuItem mi_File_Saveas=new MenuItem("另存為");
MenuItem mi_File_Close=new MenuItem("關閉");
MenuItem mi_File_Exit=new MenuItem(" 退出");
mi_File_Exit.setShortcut(new MenuShortcut(′x′));//設置快捷鍵
mi_File_Open.setActionCommand("打開");//簡化
mi_File_New.setActionCommand("新建");

mi_File_Exit.setActionCommand("退出");

mi_File_New.addActionListener(this);//使菜單子項響應動作事件
mi_File_Open.addActionListener(this);
mi_File_Save.addActionListener(this);
mi_File_Saveas.addActionListener(this);
mi_File_Close.addActionListener(this);
mi_File_Exit.addActionListener(this);
menuFile.add(mi_File_New);//把菜單子項加入菜單項
menuFile.add(mi_File_Open);
menuFile.add(mi_File_Save);
menuFile.add(mi_File_Saveas);
menuFile.add(mi_File_Close);
menuFile.addSeparator();//加一條橫向分割線
menuFile.add(mi_File_Exit);
m_MenuBar.add(menuFile);//把菜單項加入菜單條
menuEdit=new Menu("編輯");
mi_Edit_Ce=new MenuItem("撤消");
mi_Edit_Copy=new MenuItem("復制");
mi_Edit_Cut=new MenuItem("剪切");
mi_Edit_Paste=new MenuItem("粘貼");
mi_Edit_Copy.setActionCommand("復制");
mi_Edit_Cut.setActionCommand("剪切");
mi_Edit_Paste.setActionCommand("粘貼");

mi_Edit_Ce.addActionListener(this);
mi_Edit_Copy.addActionListener(this);
mi_Edit_Cut.addActionListener(this);
mi_Edit_Paste.addActionListener(this);
menuEdit.add(mi_Edit_Ce);
menuEdit.add(mi_Edit_Copy);
menuEdit.add(mi_Edit_Cut);
menuEdit.add(mi_Edit_Paste);
m_MenuBar.add(menuEdit);

menuStyle=new Menu("格式");
mi_Style_Auto=new MenuItem("自動換行");
mi_Style_Font=new MenuItem("字體");
mi_Style_Auto.addActionListener(this);
mi_Style_Font.addActionListener(this);
menuStyle.add(mi_Style_Auto);
menuStyle.add(mi_Style_Font);
m_MenuBar.add(menuStyle);
menuSearch=new Menu("查看");
mi_Search_sphere=new MenuItem("狀態欄");
mi_Search_sphere.addActionListener(this);
menuSearch.add(mi_Search_sphere);
m_MenuBar.add(menuSearch);
menuHelp=new Menu("幫助");
mi_Help_Helptopic=new MenuItem("幫助主題");
mi_Help_About=new MenuItem("關於記事本");
mi_Help_Helptopic.addActionListener(this);
mi_Help_About.addActionListener(this);
menuHelp.add(mi_Help_Helptopic);
menuHelp.add(mi_Help_About);
m_MenuBar.add(menuHelp);
setMenuBar(m_MenuBar);//把菜單條加入到菜單
addWindowListener(new WindowAdapter()//監聽窗口(關閉窗口)
{ public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}
);
setVisible(true);
validate(); //如果載入了其他東西,就可用它來顯示組件

}
public void actionPerformed(ActionEvent e)
{
if(e.getActionCommand()=="新建")
{
text.setText(null);//清空
}
if(e.getActionCommand()=="打開")
{
filedialog_load.setVisible(true);//使文件對話框可見
}
if(e.getActionCommand()=="保存")
{
filedialog_save.setVisible(true);//使文件對話框可見
}
if(e.getActionCommand() == "復制")
{
String s = text.getSelectedText();//復制到剪切板
StringSelection text1= new StringSelection(s);//拖動滑鼠選取文本
clipboard.setContents(text1, null);
}
if(e.getActionCommand() == "剪切")
{
String s1 = text.getSelectedText();//剪切到剪切板
StringSelection text1 = new StringSelection(s1);//拖動滑鼠選取文本
clipboard.setContents(text1, null);
int j = text.getSelectionStart();
int k = text.getSelectionEnd();
text.replaceRange("", j, k);//從Text中刪除被選取文本
}
if(e.getActionCommand() =="粘貼")//從剪切板粘貼數據
{
Transferable transferable = clipboard.getContents(this);
DataFlavor dataflavor = DataFlavor.stringFlavor;
if(transferable.isDataFlavorSupported(dataflavor))
{
try//處理異常事件的發生(類型不符合)
{
String s3 = (String)transferable.getTransferData(dataflavor);
text.insert(s3, text.getCaretPosition());
}
catch(Exception e1) { }
}
}
if(e.getActionCommand()=="退出")
{
dispose();
System.exit(0);
}

}
}

⑽ java記事本的基本框架

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.awt.datatransfer.*;
import java.util.*;
public class NotePad//本實驗僅實現:文件(暫時模擬)打開,新建,保存,另存為,轉到
{ //具體實現:剪切,復制,粘貼,刪除,全選,列印,退出,頁面設置,日期時間
//其他待實現
public static void main(String args[])
{

MyWindow my=new MyWindow("我的記事本");

}

}

class MyWindow extends Frame implements ActionListener
{
MyDialog dia1;
FileDialog saver,opener,save_as;
Clipboard clipboard;
MenuBar bar;
Menu menu1,menu2,menu3,menu4,menu5;
MenuItem newmake,open,save,saveas,pageset,print,exit;
MenuItem che,cut,,paste,del,search,s_next,replace,trans,save_all,data_time;
MenuItem letter;
MenuItem statusbar;
MenuItem help1,help2;
TextArea tex;
PrintJob p=null;
Graphics g=null;
CheckboxMenuItem auto_newline;
MyWindow(String s)
{
super(s);
dia1=new MyDialog(this,"轉到下列行",true);

clipboard=getToolkit().getSystemClipboard();
saver=new FileDialog(this,"保存文件",FileDialog.SAVE);
//saver.setLocation(100,60);
opener=new FileDialog(this,"打開文件",FileDialog.LOAD);
save_as=new FileDialog(this,"另存為",FileDialog.LOAD);

bar=new MenuBar();
Menu menu1=new Menu("文件(F)");
Menu menu2=new Menu("編輯(E)");
Menu menu3=new Menu("格式(O)");
Menu menu4=new Menu("查看(V)");
Menu menu5=new Menu("幫助(H)");

newmake=new MenuItem("新建(N)");
newmake.addActionListener(this);
newmake.setShortcut(new MenuShortcut(KeyEvent.VK_N));
open=new MenuItem("打開(O)");
open.addActionListener(this);
open.setShortcut(new MenuShortcut(KeyEvent.VK_O));
save=new MenuItem("保存(S)");
save.addActionListener(this);
save.setShortcut(new MenuShortcut(KeyEvent.VK_S));
saveas=new MenuItem("另存為(A)");
saveas.addActionListener(this);
pageset=new MenuItem("頁面設置(U)...");
pageset.addActionListener(this);
print=new MenuItem("列印(P)...");
print.addActionListener(this);
print.setShortcut(new MenuShortcut(KeyEvent.VK_P));
exit=new MenuItem("退出(X)");
exit.addActionListener(this);

menu1.add(newmake);
menu1.add(open);
menu1.add(save);
menu1.add(saveas);
menu1.addSeparator();
menu1.add(pageset);
menu1.add(print);
menu1.addSeparator();
menu1.add(exit);

che=new MenuItem("撤銷(U)");
che.setShortcut(new MenuShortcut(KeyEvent.VK_Z));
cut=new MenuItem("剪切(T)");
cut.addActionListener(this);
cut.setShortcut(new MenuShortcut(KeyEvent.VK_X));
=new MenuItem("復制(C)");
.addActionListener(this);
.setShortcut(new MenuShortcut(KeyEvent.VK_C));
paste=new MenuItem("粘貼(P)");
paste.addActionListener(this);
paste.setShortcut(new MenuShortcut(KeyEvent.VK_V));
del=new MenuItem("刪除(L)");
del.addActionListener(this);
del.setShortcut(new MenuShortcut(KeyEvent.VK_D));
search=new MenuItem("查找(F)...");
search.setShortcut(new MenuShortcut(KeyEvent.VK_F));
s_next=new MenuItem("查找下一個(N)");
s_next.setShortcut(new MenuShortcut(KeyEvent.VK_F3));
replace=new MenuItem("替換(R)...");
replace.setShortcut(new MenuShortcut(KeyEvent.VK_H));
trans=new MenuItem("轉到(G)...");
trans.setShortcut(new MenuShortcut(KeyEvent.VK_G));
trans.addActionListener(this);
save_all=new MenuItem("全選(A)");
save_all.setShortcut(new MenuShortcut(KeyEvent.VK_A));
save_all.addActionListener(this);
data_time=new MenuItem("日期/時間(D)");
data_time.setShortcut(new MenuShortcut(KeyEvent.VK_F5));
data_time.addActionListener(this);

menu2.add(che);
menu2.addSeparator();
menu2.add(cut);
menu2.add();
menu2.add(paste);
menu2.add(del);
menu2.addSeparator();
menu2.add(search);
menu2.add(s_next);
menu2.add(replace);
menu2.add(trans);
menu2.addSeparator();
menu2.add(save_all);
menu2.add(data_time);

auto_newline=new CheckboxMenuItem("自動換行(W)");//尚未實現
auto_newline.addActionListener(this);
letter=new MenuItem("字體(F)...");//尚未實現
menu3.add(auto_newline);
menu3.add(letter);

statusbar=new MenuItem("狀態欄(S)");
statusbar.setEnabled(false);
menu4.add(statusbar);

help1=new MenuItem("幫助主題(H)");
help2=new MenuItem("關於記事本(A)");
menu5.add(help1);
menu5.add(help2);

bar.add(menu1);
bar.add(menu2);
bar.add(menu3);
bar.add(menu4);
bar.add(menu5);

setMenuBar(bar);

tex=new TextArea();

add(tex,BorderLayout.CENTER);

setBounds(300,50,600,600);
setVisible(true);
validate();
addWindowListener(new WindowAdapter()
{

public void windowClosing(WindowEvent e)
{

System.exit(0);
}

});

}

public void actionPerformed(ActionEvent e)
{

if(e.getSource()==open)
{
opener.setVisible(true);
tex.setText("你打開的文件為:"+opener.getFile()+"\n文件所在目錄為:"+opener.getDirectory());

}
if(e.getSource()==save)
{
saver.setVisible(true);
tex.setText("你保存文件為:"+saver.getFile()+"\n文件所在目錄為:"+saver.getDirectory());

}
if(e.getSource()==saveas)
{
save_as.setVisible(true);
tex.setText("你另存的文件為:"+save_as.getFile()+"\n文件所在目錄為:"+save_as.getDirectory());

}
if(e.getSource()==exit)
{
System.exit(0);

}

if(e.getSource()==newmake)
{
//if(tex.getText()!=null)這里不可以判斷內容的有無,只能通過內容的長度,來判斷是否輸入了內容
if(tex.getText().length()!=0)
{
int k=JOptionPane.showConfirmDialog(this,"文件的文字已經改變,想保存文件嗎?","確認對話框",JOptionPane.YES_NO_OPTION);

if(k==JOptionPane.YES_OPTION)
{
saver.setVisible(true);
tex.setText(null);
}

if(k==JOptionPane.NO_OPTION)
{
tex.setText(null);
}
}
else
{

tex.setText("你已經新建一個文件");

}

}

if(e.getSource()==print)
{
p=getToolkit().getPrintJob(this,"ok",null);
g=p.getGraphics();
g.translate(120,200);
tex.printAll(g);
g.dispose();
p.end();

}
if(e.getSource()==trans)//未實現
{

dia1.setVisible(true);
//dia1.setCaretPosition();

}
if(e.getSource()==save_all)
{
tex.selectAll();//全選

}

if(e.getSource()==data_time)
{
Date d=new Date();
tex.append(d.toString());

}

if(e.getSource()==pageset)
{
p=getToolkit().getPrintJob(this,"ok",null);
g=p.getGraphics();
g.translate(120,200);
tex.printAll(g);
g.dispose();
p.end();

}

if(e.getSource()==)
{

String temp=tex.getSelectedText();
StringSelection text=new StringSelection(temp);
clipboard.setContents(text,null);

}

else if(e.getSource()==cut)
{

String temp=tex.getSelectedText();
StringSelection text=new StringSelection(temp);
clipboard.setContents(text,null);

int start=tex.getSelectionStart();
int end=tex.getSelectionEnd();
tex.replaceRange("",start,end);

}

else if(e.getSource()==paste)
{

Transferable contents=clipboard.getContents(this);
DataFlavor flavor=DataFlavor.stringFlavor;
if(contents.isDataFlavorSupported(flavor))
{

try{

String str=(String)contents.getTransferData(flavor);
tex.append(str);

}

catch(Exception ee){}

}

}

if(e.getSource()==del)
{
int start=tex.getSelectionStart();
int end=tex.getSelectionEnd();
tex.replaceRange("",start,end);

}

//if(e.getSource()==auto_newline)
//{

//System.out.println("自動換行");

//}

}

}

class MyDialog extends Dialog implements ActionListener
{

TextField t1;
Button but1,but2;
MyDialog(Frame f,String s,boolean b)
{
super(f,s,b);
t1=new TextField(10);
but1=new Button("確定");
but2=new Button("取消");
setLayout(new FlowLayout());
add(t1);
add(but1);
add(but2);
but1.addActionListener(this);
but2.addActionListener(this);
setBounds(320,150,200,100);
validate();

}

public void actionPerformed(ActionEvent e)
{
if(e.getSource()==but1||e.getSource()==but2)
{
setVisible(false);
}

}

}

閱讀全文

與java記事本相關的資料

熱點內容
精品php源碼 瀏覽:960
自己編寫雲伺服器搶紅包 瀏覽:203
java解壓縮文件加密 瀏覽:887
dlink列印伺服器默認地址 瀏覽:353
php休眠函數 瀏覽:372
金蝶如何打開伺服器 瀏覽:766
e4a手游輔助源碼 瀏覽:777
什麼app可以實時直播 瀏覽:106
蘋果13的app閃退什麼原因 瀏覽:775
尾盤選股源碼公式 瀏覽:450
php日期運算 瀏覽:931
天龍八部長歌伺服器什麼時候開的 瀏覽:199
鬼泣4模型在那個文件夾 瀏覽:229
單片機的串列口 瀏覽:58
phpjson轉化為數組 瀏覽:268
pdf導入excel 瀏覽:428
蘋果xsmax信任app在哪裡設置 瀏覽:53
自動外鏈php源碼 瀏覽:245
我的世界新手獎勵箱命令 瀏覽:146
linux更新vim 瀏覽:998