当前位置:文档之家› Java记事本源代码

Java记事本源代码

Java记事本源代码
Java记事本源代码

import java.awt.*;

import java.io.*;

import javax.swing.*;

//文件->新建N CTRL+N

class 新建implements ActionListener {

private JTextArea editText;

private boolean choose;

public JFrame frame;

public static String path1;//在打开的事件中path1="";

public String str;

新建() {

this.editText = JLinePrint.editText;

path1="";

NewMenu();

}//新建

public void NewMenu(){

//建立询问框,设置大小位置,设为自己布局

frame=new JFrame("记事本");

frame.setBounds(424, 269, 355, 181);

frame.setLayout(null);

//建立两个标签

JLabel label1=new JLabel("文件的内容已经改变");

label1.setFont(new Font("新宋体",Font.PLAIN,14));

JLabel label2=new JLabel("想保存文件吗?:)");

label2.setFont(new Font("新宋体",Font.PLAIN,14));

label1.setBounds(113,23,180, 23);

label2.setBounds(113,46,180,23);

frame.add(label1);

frame.add(label2);

//建立"是"按钮

JButton button_Yes=new JButton("是(Y)");

button_Yes.setMnemonic(KeyEvent.VK_Y);//按ALT+Y选择

//给"是"按钮加上事件监听

button_Yes.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e1){

保存.path="";//保存类的路径清空

保存.FirstSave=false;//保存类恢复未保存状态

//与另存为相同

choose=false;//条件未满足,不保存

//弹框设定路径

FileDialog filedialog=new FileDialog(frame,"另存为",FileDialog.SAVE);

filedialog.setVisible(true);

path1=filedialog.getDirectory()+filedialog.getFile()+".txt";

//如果为选择路径(文件名为null或nullnull),则直接返回

if(path1.equals("nullnull.txt")||path1.equals(filedialog.getDirectory()+"null.txt"))

{

return;

}//if

final File file=new File(path1);

choose=true;//满足条件,设为能保存状态

if( file.exists()){//如果文件重名

choose=false; //有条件不满足,重设为不能保存状态

final JFrame f=new JFrame("另存为");

f.setBounds(435,276,path1.length()*7+200,125);

f.setVisible(true);

f.setLayout(null);

JLabel label=new JLabel(path1+"已存在。"+"要替换它吗?");

label.setBounds(20,10,path1.length()*7+130,30);

f.add(label);

JButton button_Yes=new JButton("是(Y)");

button_Yes.setMnemonic(KeyEvent.VK_Y);//按ALT+Y选择

button_Yes.setBounds(43,58,100,30);

button_Yes.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){

try {

//选择是以后直接保存

//若有文件重名时候的文件输出流,输出后直接退出新建窗口

FileWriter out;

out = new FileWriter(file);

BufferedWriter out_ = new BufferedWriter(out);

String temp[]=str.split("\n");

if (file.canRead()||file.getName()!=null) {

int i=-1;

for(;++i

out_.write(temp[i]);

out_.newLine();

}out_.write(temp[i]);

out_.close();

}//if

editText.setText(null);//把文本框清空

}//try

catch (IOException e3) {

}//catch

f.dispose();

}//actionperformed

});//ActionListener

f.add(button_Yes);

JButton button_No=new JButton("否(N)");

button_No.setMnemonic(KeyEvent.VK_N);//按ALT+N选择

button_No.setBounds(143+path1.length()*4,58,100,30);

button_No.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e)

{

f.dispose();

editText.setText(str);

}

});

f.add(button_No);

}//if

//文件不重名时候的文件输出流

if(choose)//如果前面的条件都满足则执行保存命令

{

//文件输出流

try {

FileWriter out;

out = new FileWriter(file);

BufferedWriter out_ = new BufferedWriter(out);

String temp[]=str.split("\n");

if (file.canRead()||file.getName()!=null) {

int i=-1;

for(;++i

out_.write(temp[i]);

out_.newLine();

}out_.write(temp[i]);

out_.close();

}//if

editText.setText(null);

}//try

catch (IOException e3) {

}//catch

}//if

frame.dispose();

}//actionPerformed

});

JButton button_No=new JButton("否(N)");

button_No.setMnemonic(KeyEvent.VK_N);//按ALT+N选择

button_No.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){

//若选择否则保存条件不满足

choose=false;

JLinePrint.editText.setText(null);

保存.path="";//保存恢复

frame.dispose();

}

});

button_Yes.setBounds(81,93,100,30);

button_No.setBounds(211,93,100,30);

frame.add(button_Yes);

frame.add(button_No);

frame.setResizable(false);

}

public void actionPerformed(ActionEvent e) {

//若文件内容有改变,询问用户是否存档

if(文本框事件.change){

str=editText.getText();

frame.setVisible(true);

}//if

}//actionPerformed

}//新建

// 文件->打开O CTRL+O

class 打开implements ActionListener {

private FileDialog filedialog;

private JLinePrint lineprint;

打开(JFrame frame,JLinePrint lineprint) {

this.lineprint=lineprint;

filedialog = new FileDialog(frame, "打开", FileDialog.LOAD);

}//打开

public void actionPerformed(ActionEvent e) {

Open();

}//actionPerformed

public void Open(){

String regex="[.txt]";//正则表达式

filedialog.setVisible(true);

if(filedialog.getDirectory()==null)return;//按取消的时候

String Filepath=filedialog.getDirectory(); //获取文件路径,最后面带"\"

String FileName=filedialog.getFile(); //获取文件名字(带.txt)

String path=Filepath + FileName; //文件路径+文件名字

FileName=FileName.replaceAll(regex, ""); //获取文件名字(不带.txt)

File file = new File(path);

try {

FileReader in = new FileReader(file);

BufferedReader in_ = new BufferedReader(in);

String s = in_.readLine();

String temp = s;

s=in_.readLine();

if (file.canRead()) {

while (s != null) {

temp +=("\r\n"+s); //存在一个String里面,到时候一次性赋给JTextArea

s = in_.readLine(); //一行一行读取

}//while

JLinePrint.editText.setText(temp);

in_.close();

//读入即时存档文件

for(int i=0;++i<11;){

File file1=new File(Filepath+FileName+String.valueOf(i)+".txt");//文件路径+文件名(不带.txt)+存档编号+.txt

if(file1.exists()){

in = new FileReader(file1);

in_ = new BufferedReader(in);

s = in_.readLine();//第一行读取时间

Notepad.Save_subMenu[i-1].setText(s);//给即时存档子菜单改变时间;保存文件名在后面加1-10,数组下标由0-9

Notepad.Load_subMenu[i-1].setText(s);//给即时读档子菜单改变时间

s=in_.readLine();//第二行开始读取正文

temp = "";

if (file1.canRead()) {

while (s != null) {

temp += (s + "\r\n");

s = in_.readLine();

}//while

Notepad.Save[i-1].s=temp;

Notepad.Load[i-1].s=Notepad.Save[i-1];

in_.close();

}//if

}//if

else{//如果没有该编号的存档

Notepad.Save_subMenu[i-1].setText("--------/-------- ");//给即时存档子菜单改变时间;

Notepad.Load_subMenu[i-1].setText("--------/-------- ");//给即时读档子菜单改变时间;

Notepad.Save[i-1].s="";

Notepad.Load[i-1].s=Notepad.Save[i-1];

}//else

}//for

lineprint.repaint_1();

final JFrame frame = new JFrame("读入成功!");

frame.setResizable(false);

frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

frame.setLayout(null);

frame.setBounds(300, 400, 250, 125);

frame.setVisible(true);

JButton button = new JButton("确定");

button.setBounds(75, 50, 100, 30);

frame.add(button);

button.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

frame.dispose();

}//actionPerformed

});//addActionListener

// (String) File.getParent()返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回null。

//(File) File.getParentFile()返回此抽象路径名父目录的抽象路径名;如果此路径名没有指定父目录,则返回null。

保存.fileName=FileName+".txt";//获取文本名字

保存.filepath=path.replace("\\"+FileName+".txt", "");//获取路径名字,这个路径没有XX.txt

保存.path=path;//打开的时候保存路径已设好这个路径有XX.txt

保存.FirstSave=true;//打开的时候算作有第一次保存,CTRL+S无需弹框保存

新建.path1="";//新建恢复

}//if

}//try

catch (IOException e1) {

}//catch

}//Open

}//打开

//文件->保存||另存为

class 保存implements ActionListener{//囊括了保存和另存为

private JTextArea editText;

private FileDialog filedialog;

public static String path;//path用于"保存"菜单项;在即时存档中检测有无保存;在新建中在选择过后path恢复为"";在打开的时候直接获取path,同时控制在保存一次后不再弹出保存对话框

private String path1;//;path1用于"另存为"菜单项

public static boolean FirstSave;//用于在"保存"菜单项中判断是否为第一次保存;在新建中保存后FirstSave赋值为false;在打开类中打开文件后FirstSave赋值为true private boolean choose;//文件重名时候的选择为true or false

public static String filepath;//filepath文件路径名,用于即时存档;在打开中获取文件路径

public static String fileName;//fileName文件名,用于即时存档;在打开中获取文件名保存(JFrame frame){

this.editText=JLinePrint.editText;

filedialog=new FileDialog(frame,"保存",FileDialog.SAVE);

path="";

FirstSave=false;

}//保存

public void actionPerformed(ActionEvent e){

choose=false;

if(((JMenuItem)e.getSource()).getActionCommand().equals("保存(S)")){

Save();

}//if("保存(S)")

else if(((JMenuItem)e.getSource()).getActionCommand().equals("另存为(A)...")){ Resave();

}//另存为(A)...

}//actionPerformed

public void Save(){

if(path.equals("")){//如果文件路径为空则弹框获得文件路径

filedialog.setVisible(true);

filepath=filedialog.getDirectory();

System.out.println(filepath);

fileName=filedialog.getFile();

System.out.println(fileName);

path=filepath+fileName+".txt";

}//if

if(path.equals("nullnull.txt")||path.equals(filedialog.getDirectory()+"null.txt"))

{

path="";

return;

}//if

choose=true;

File file=new File(path);

if(!FirstSave && file.exists()){//如果不是第一次保存同时文件重名

final JFrame f=new JFrame("另存为");

f.setBounds(435,276,path.length()*7+200,125);

f.setVisible(true);

f.setLayout(null);

JLabel label=new JLabel(path+"已存在。"+"要替换它吗?");

label.setBounds(20,10,path.length()*7+130,30);

f.add(label);

JButton button_Yes=new JButton("是(Y)");

button_Yes.setMnemonic(KeyEvent.VK_Y);//按ALT+Y选择

button_Yes.setBounds(43,58,100,30);

button_Yes.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){

choose=true;

FirstSave=true;

f.dispose();

}

});//ActionListener

f.add(button_Yes);

JButton button_No=new JButton("否(N)");

button_No.setMnemonic(KeyEvent.VK_N);//按ALT+N选择

button_No.setBounds(143+path.length()*4,58,100,30);

button_No.addActionListener(new ActionListener(){

//添加事件,在确认是否覆盖的时候选择否,不保存,重置第一次存储,路径重置

public void actionPerformed(ActionEvent e)

{

choose=false;

FirstSave=false;

path="";

f.dispose();

}

});

f.add(button_No);

}//if

if(choose)

{

//文件输出流

try {

FirstSave=true;

FileWriter out;

out = new FileWriter(file);

BufferedWriter out_ = new BufferedWriter(out);

String s=editText.getText();

String temp[]=s.split("\n");

if (file.canRead()||file.getName()!=null) {

int i=-1;

for(;++i

out_.write(temp[i]);

out_.newLine();

}out_.write(temp[i]);

out_.close();

}//if

}//try

catch (IOException e1) {

}//catch

}//if

}//Save

public void Resave(){

//另存为没有保存那么麻烦,保存存储一次后不再弹打开框,直接以原路径保存;另存为需要不断弹出打开框来进行保存。

filedialog.setVisible(true);

path1=filedialog.getDirectory()+filedialog.getFile()+".txt";

if(path1.equals("nullnull.txt")||path1.equals(filedialog.getDirectory()+"null.txt"))

{

return;

}//if

File file=new File(path1);

choose=true;

if(!FirstSave && file.exists()){//如果不是第一次保存同时文件重名

final JFrame f=new JFrame("另存为");

f.setBounds(435,276,path1.length()*7+200,125);

f.setVisible(true);

f.setLayout(null);

JLabel label=new JLabel(path1+"已存在。"+"要替换它吗?");

label.setBounds(20,10,path1.length()*7+130,30);

f.add(label);

JButton button_Yes=new JButton("是(Y)");

button_Yes.setMnemonic(KeyEvent.VK_Y);//按ALT+Y选择

button_Yes.setBounds(43,58,100,30);

button_Yes.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){

choose=true;

f.dispose();

}

});//ActionListener

f.add(button_Yes);

JButton button_No=new JButton("否(N)");

button_No.setMnemonic(KeyEvent.VK_N);//按ALT+N选择

button_No.setBounds(143+path1.length()*4,58,100,30);

button_No.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e)

{

choose=false;

f.dispose();

}

});

f.add(button_No);

}//if

if(choose)

{

//文件输出流

try {

FirstSave=true;

FileWriter out;

out = new FileWriter(file);

BufferedWriter out_ = new BufferedWriter(out);

String s=editText.getText();

String temp[]=s.split("\n");

if (file.canRead()||file.getName()!=null) {

int i=-1;

for(;++i

out_.write(temp[i]);

out_.newLine();

}out_.write(temp[i]);

out_.close();

}//if

}//try

catch (IOException e1) {

}//catch

}//if

}//Resave

}//保存

//文件->页面设置

class 页面设置implements ActionListener{//页面设置1

private JFrame frame;

页面设置(){

frame=new JFrame("页面设置");

frame.setBounds(419,244,472,323);

frame.setLayout(new GridLayout(5,1));

JPanel Pane=new JPanel();

//设置每一页打印的行数

final JLabel LineEveryPage_set=new JLabel("每一页输出"+打印.LineEverypage+" 行");

LineEveryPage_set.setForeground(Color.blue);

LineEveryPage_set.setFont(new Font("华文行楷",Font.BOLD,24));

final JTextField LineEverypage_set1=new JTextField(5);

final JLabel LineEveryPage_status=new JLabel("默认");

LineEverypage_set1.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){

int s=Integer.parseInt(e.getActionCommand());

if(s<=0||s>100){

LineEverypage_set1.setText(null);

LineEveryPage_status.setText("限制在1-100之间");

return;

}

打印.LineEverypage=s;

LineEveryPage_set.setText("每一页输出"+打印.LineEverypage+" 行");

if(打印.LineEverypage==80){

LineEveryPage_status.setText("默认");

}//if

else{

LineEveryPage_status.setText("已修改");

}//else

LineEverypage_set1.setText(null);

}//actionPerformed

});//addActionListener

Pane.add(LineEveryPage_set);

Pane.add(LineEverypage_set1);

Pane.add(LineEveryPage_status);

Pane.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createTitledBorder("修改打印时每一页打印的行数"),BorderFactory.createEmptyBorder()));

frame.add(Pane);

//设置x的坐标偏移量

JPanel Pane1=new JPanel();

final JLabel set_x=new JLabel("x坐标的偏移量x="+Print.start_x);

set_x.setFont(new Font("华文楷体",Font.BOLD,24));

set_x.setForeground(Color.green);

final JTextField set_x1=new JTextField(5);

final JLabel set_x_status=new JLabel("默认");

set_x1.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){

double s=Double.parseDouble(e.getActionCommand());

if(s<0||s>100){

set_x1.setText(null);

set_x_status.setText("限制在0-100之间");

return;

}

Print.start_x=s;

set_x.setText("x坐标的偏移量x="+Print.start_x);

if(Print.start_x==50.0){

set_x_status.setText("默认");

}//if

else{

set_x_status.setText("已修改");

}//else

set_x1.setText(null);

}

});

Pane1.add(set_x);

Pane1.add(set_x1);

Pane1.add(set_x_status);

Pane1.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createTitledBorder("修改打印时起点坐标在x轴的偏移量"),BorderFactory.createEmptyBorder()));

frame.add(Pane1);

//设置y的坐标偏移量

JPanel Pane2=new JPanel();

final JLabel set_y=new JLabel("y坐标的偏移量y="+Print.start_y);

set_y.setFont(new Font("方正舒体",Font.BOLD,24));

set_y.setForeground(Color.red);

final JTextField set_y1=new JTextField(5);

final JLabel set_y_status=new JLabel("默认");

set_y1.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){

double s=Double.parseDouble(e.getActionCommand());

if(s<0||s>100){

set_y1.setText(null);

set_y_status.setText("限制在0-100之间");

return;

}

Print.start_y=s;

set_y.setText("y坐标的偏移量y="+Print.start_y);

if(Print.start_y==20.0){

set_y_status.setText("默认");

}//if

else{

set_y_status.setText("已修改");

}//else

set_y1.setText(null);

}

});

Pane2.add(set_y);

Pane2.add(set_y1);

Pane2.add(set_y_status);

Pane2.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createTitledBorder("修改打印时起点坐标在y轴的偏移量"),BorderFactory.createEmptyBorder()));

frame.add(Pane2);

//设置行与行之间的间距

JPanel pane4=new JPanel();

final JLabel setinterval=new JLabel("行与行之间的间距为"+Print.interval);

setinterval.setFont(new Font("黑体",Font.BOLD,24));

setinterval.setForeground(Color.PINK);

final JTextField textfield_setinterval=new JTextField(5);

final JLabel setinterval_status=new JLabel("默认");

textfield_setinterval.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){

int s=Integer.parseInt(e.getActionCommand());

if(s<0||s>100){

textfield_setinterval.setText(null);

setinterval_status.setText("限制在0-100之间");

return;

}

Print.interval=s;

setinterval.setText("行与行之间的间距为"+Print.interval);

if(Print.interval==10){

setinterval_status.setText("默认");

}//if

else{

setinterval_status.setText("已修改");

}//else

textfield_setinterval.setText(null);

}

});

pane4.add(setinterval);

pane4.add(textfield_setinterval);

pane4.add(setinterval_status);

pane4.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createTitledBorder("修改打印时行与行的间距"),BorderFactory.createEmptyBorder()));

frame.add(pane4);

//按钮,恢复默认

JPanel Pane3=new JPanel();

JButton button=new JButton("恢复默认");

button.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){

Print.start_x=50.0d;

Print.start_y=20.0d;

打印.LineEverypage=80;

Print.interval=10;

LineEveryPage_set.setText("每一页输出"+80+" 行");

set_x.setText("x坐标的偏移量x="+50.0);

set_y.setText("y坐标的偏移量y="+20.0);

setinterval.setText("行与行之间的间距为"+Print.interval);

LineEveryPage_status.setText("默认");

set_x_status.setText("默认");

set_y_status.setText("默认");

setinterval_status.setText("默认");

}

});

Pane3.add(button);

frame.add(Pane3);

}

public void actionPerformed(ActionEvent e){

frame.setVisible(true);//刚开始编记事本的时候直接在这里定义窗口了,导致每一次打开都要定义一次窗口。

//放构造函数定义窗口的好处是不用重复定义,但是弄多了后打开记事本要等久一些。

}//actionPerformed

}//页面设置

//文件->打印

class 打印implements ActionListener{//打印1

public static int LineEverypage=80; //设置每一页输出多少行,默认80

public void actionPerformed(ActionEvent e){

//获取打印服务对象

String printstr=JLinePrint.editText.getText();

PrinterJob job = PrinterJob.getPrinterJob();

int max_Index=JLinePrint.lineOfC/LineEverypage;

int LeaveLine=JLinePrint.lineOfC-LineEverypage*(max_Index);

job.setPrintable(new Print(printstr,JLinePrint.lineOfC/LineEverypage,LeaveLine));//设置打印类

try {

boolean a=job.printDialog();

//job.getPrintService()获取打印机名字

if(a)

{

int Copies=job.getCopies();

for(int i=-1;++i

{

Print.isFirst=true;

job.print();

}

}//if

}//try

catch (PrinterException e1) {

e1.printStackTrace();

}//catch

}//actionPerformed

}//打印

//使用虚拟打印机SmartPrinterV4

//转载自https://www.doczj.com/doc/89755676.html,/kelly/archive/2007/01/31/96973.html

//需要较大的改动

//在pdf输出排版上需要修改。以及换页命令。

//将文本以'\n'来分成一个String数组,然后一行一行地Graphics.drawString两次,第一次是喷电子,第二次喷墨

//能够设定一页打印多少行,最后LeaveLine小于所设行数,独立出来打印

class Print implements Printable{//Print1

/**

* @param Graphic指明打印的图形环境

* @param PageFormat指明打印页格式(页面大小以点为计量单位,1点为1英才的1/72,1英寸为25.4毫米。A4纸大致为595×842点)

* @param pageIndex指明页号

**/

public static double start_x=50.0d;//设置打印起点的x坐标偏移量

public static double start_y=20.0d;//设置打印起点的y坐标偏移量

public static int interval=10;//设置打印中行与行的间距,默认为10

private int max_pageIndex; //每页输出x行,总共有max_pageIndex页。

private int LeaveLine;//剩余的一页里有多少行

private String temp[];

public static boolean isFirst; //用于控制最后一页g2.drawString()执行两次

public static int page;

Print(String str,int max_pageIndex,int LeaveLine){

this.max_pageIndex=max_pageIndex;

this.LeaveLine=LeaveLine;

temp=str.split("\n");

isFirst=true;

}

public int print(Graphics gra, PageFormat pf, int pageIndex) throws PrinterException { //print string

//转换成Graphics2D

Graphics2D g2 = (Graphics2D) gra;

//设置打印颜色为黑色

g2.setColor(Color.black);

//打印起点坐标

double x = pf.getImageableX();

double y1 = pf.getImageableY();

//设置打印字体(字体名称、样式和点大小)(字体名称可以是物理或者逻辑名称)

//Java平台所定义的五种字体系列:Serif、SansSerif、Monospaced、Dialog 和DialogInput

Font font = new Font("新宋体", Font.PLAIN, 9);

g2.setFont(font);//设置字体

g2.setColor(字体颜色.fontColor);//设置颜色

float heigth = font.getSize2D();//字体高度

double y=y1+1*heigth;

x=x+start_x;

y=y+start_y;

if(pageIndex

int i=打印.LineEverypage*pageIndex-1;

int len=i+打印.LineEverypage;

for(;++i<=len;y+=interval)

{

try{

if(temp[i].isEmpty())continue;

}catch(Throwable e){continue;}

g2.drawString(temp[i], (float)x, (float)y); //这个去掉没有任何输出,用于输出String

}//for

return PAGE_EXISTS;

}//if

//注意这里打印要g2.drawString()两次才能输出

else if(LeaveLine!=0){

if(pageIndex==max_pageIndex){

int i=pageIndex*打印.LineEverypage-1;

int len=i+LeaveLine;

for(;++i<=len;y+=interval){

if(temp[i].isEmpty())continue;

g2.drawString(temp[i], (float)x, (float)y); //这个去掉没有任何输出,用于输出String

}

}//if

if(isFirst){

isFirst=false;

return PAGE_EXISTS;

}

else {

LeaveLine=0;

}//else

}//if

return NO_SUCH_PAGE;

}//print

}//Print

//ObjectInputStream和ObjectInputSteam的作用对象

//如果没有implements Serializable接口的话无法保存和读取Object

class Jtext implements Serializable{//序列化

/**

*

*/

private static final long serialVersionUID = -8033769323957083044L;

private String SecreteFile; //密文

public Jtext(String SecreteFile){

this.SecreteFile=SecreteFile;

}

public String getSecreteFile(){

return SecreteFile;

}

}

//加密解码的方式参照了https://www.doczj.com/doc/89755676.html,/zhuxueke_830111/article/details/2009916的记事本加密解密方法

//该例子解密加密的字符默认为'a'和's'

//解密加密方式为char^char 会变成一个奇怪的字符即我们看到的密文

再一次char^char 会恢复成原文

//这个类将每一个密码字符都用于解密加密,且不保存密码,打开时如果密码输入错误会导致解密失败,密文会变成另一段乱码,但是不影响已保存文件的内容

//本例子将JTextField用作密码框,限制输入字符数为10,并使显示字符为'*' ;

//注意:密文无法使用BufferedWriter类进行保存,需要用ObjectOutputStream类进行保存,否则解密的时候会多出字符

//文件->加密解密

class 加密解密implements ActionListener{

private JFrame frame;

private String keyWord;

private int len;

private String s;

public 加密解密(){

Menu();

len=0;

s="";

keyWord="";

}//加密解密

public void actionPerformed(ActionEvent e){

frame.setVisible(true);

}//actionPerformed

public void Menu(){

frame=new JFrame("输入密码框");

frame.setBounds(447,190,250,158);

frame.setLayout(null);

frame.setResizable(false);

JLabel label_InputYourKeyWord=new JLabel("请输入密码(限制10个字符)再点击按钮:");

label_InputYourKeyWord.setBounds(10,10,250,20);

final JTextField passWordField=new JTextField(10);

//把文本框改装成密码框,同时实现限制了10个字符的功能

passWordField.addKeyListener(new KeyListener(){

public void keyPressed(KeyEvent e) {

if(e.getKeyChar()==(char)KeyEvent.VK_BACK_SPACE){

if(len>0){

len--;

s=s.substring(0,len);

keyWord=keyWord.substring(0,len);

}//if

}//if

if(!String.valueOf(e.getKeyChar()).matches("[0-9]|[a-zA-Z]"))return;

if(len>=10)passWordField.setText(s);

else if(len<10){

s+="*";//把密码框里的字符全部变为"*"

len++;

keyWord+=String.valueOf(e.getKeyChar()); //密码用keyWord保存}//else if

}//keyPressed

public void keyReleased(KeyEvent e1) {

passWordField.setText(s); //把文本框的内容变为'*'号。

}//keyReleased

public void keyTyped(KeyEvent arg0) {}

});

passWordField.setBounds(20,50,100,30);

JButton button_confirm=new JButton("保存");

button_confirm.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){

passWordField.setText(null);//密码框清空

SecretFileSave(Encryption_Decryption(JLinePrint.editText.getText(),keyWord));

len=0;//密码字数重置为0

keyWord="";//密码清空

s="";//密码字符清空

}

});

button_confirm.setBounds(135,50,100,30);

JButton button_Open=new JButton("打开");

button_Open.setBounds(135,90,100,30);

button_Open.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){

passWordField.setText(null);

SecretFileOpen();

len=0;//密码字数重置为0

keyWord="";//密码清空

s="";//密码字符清空

//把视野转到文本最后面

JLinePrint.editText.setSelectionStart(JLinePrint.editText.getText().length()-2);

JLinePrint.editText.setSelectionEnd(JLinePrint.editText.getText().length()-2);

}

});

frame.addWindowListener(new WindowListener(){

public void windowActivated(WindowEvent arg0) {

//窗口打开的时候

//System.out.println(1);

}

public void windowClosed(WindowEvent arg0) {

//System.out.println(2);

}

public void windowClosing(WindowEvent arg0) {

//窗口关闭的时候

//System.out.println(3);

passWordField.setText(null);

len=0;

keyWord="";

s="";

}

public void windowDeactivated(WindowEvent arg0) { //窗口关闭的时候

//System.out.println(4);

}

public void windowDeiconified(WindowEvent arg0) { //System.out.println(5);

}

public void windowIconified(WindowEvent arg0) {

//System.out.println(6);

}

public void windowOpened(WindowEvent arg0) {

//窗口打开的时候

//System.out.println(7);

}

});

frame.add(button_Open);

frame.add(button_confirm);

frame.add(label_InputYourKeyWord);

frame.add(passWordField);

}//Menu

private String Encryption_Decryption(String s,String keyWord){ StringBuffer BF=new StringBuffer(s);

char a=0;

if(keyWord.length()!=0)

{

如何用记事本编写一个简单的java代码

如何用记事本编写一个简单的j a v a代码 Document serial number【UU89WT-UU98YT-UU8CB-UUUT-UUT108】

一:怎么用记事本写第一个java代码 第一步:新建txt文档 首先我们在F盘新建一个txt文档,并命名为,如下图所示: 第二步:编写代码 我们双击打开:如下图所示 第三步:编写好代码 我们在记事本中写代码,写好后如下所示:

然后我们同时按Ctrl+s键保存,然后关闭记事本即可 上面的源代码如下: public class Test{//这里的Test为类名,这里类名要与我们刚才新建的记事本的名字必须一致,首字母大写 public static void main(String[] args){//java中的主函数的写法 "HelloWorld");//java中的输出语句写法 } } 第三步:打开控制台界面 我们在计算机中,打开如下图界面,

然后在这里,输入cmd,并按回车,然后弹出如图所示

第四步:在控制台中运行并输出 我们用鼠标点击一下里面黑色部分,然后输入F:然后回车,然后再输入javac 然后回车,最后输入java Test,就可以看到结果了,如下图所示:

红色圈出来部分就是结果了 二:温馨提示: 1,上面演算中在控制台中首先输入F:的原因是因为我在F盘建立一个文本文档,并命名为,如果你是把你的文档文档建立在D盘,则应该输入D: 以此类推。 2,如果你是在F盘下的CH文件夹建立一个记事本,并命名为,则输入的情况如下, cd CH表示转到CH这个文件夹下,然后再输入回车,再输入java Test 就可以看到运行结果了

java记事本课程设计论文附源码

设计题目:记事本课程设计 专业:电子信息科学与技术 班级:电子1202班 学号:20121210606 姓名:王鹏 2015 年7月

XXX学院本科学生课程设计任务书

摘要 目前,很多新的技术领域都涉及到了Java语言,Java语言是面向对象编程,并涉及到网络、多线程等重要的基础知识,因此Java语言也是学习面向对象编程和网络编程的首选语言。此次课程设计主要通过编写一个简单的记事本程序使我们深入理解并实践在本课程中所学的有关JAVA程序设计方面的语言基础、异常处理、事件处理、小应用程序以及图形用户界面设计等内容。此简易记事本程序,使用Java程序编写,能够进行输入文字操作,并具有新建文件,打开文件,保存文件,退出,复制,粘贴,剪切等功能。该程序主要用到了Java swing和事件监听等。 关键词记事本程序,java语言,Java swing

目录 摘要 (1) 1 需求分析 (3) 1.1需求分析 (3) 1.2功能设计 (3) 2 概要分析 (4) 2.1概要设计思想 (4) 2.2程序运行界面 (4) 2.3程序模块说明 (4) 2.4流程图 (5) 2.5程序相关说明 (6) 3 程序详细设计与分析 (8) 3.1构建菜单栏及其下拉菜单 (8) 3.2“文件”菜单操作的事件监听 (8) 3.3“编辑”、“格式”等菜单的事件监听 (10) 3.4异常处理 (11) 4 测试分析 (12) 5 源程序清单 (15) 结论 (22) 参考文献 (23)

1 需求分析 1.1需求分析 现在网络上各种文档编辑器数不胜数,有EmEditor ,UEStudio ,GridinSoft Notepad ,Notepad++,win32pad ,SkimEdit,UniRed, xint 。功能也是应有尽有,有能改变字体的,有能改变文字颜色的。但是,这些软件又存在各种各样的瑕疵或问题:有的文件体积相对于一般文字编辑来说太大;有的功能太繁杂,使初级使用者一时难以掌握。仅从日常应用方面来说,一个文本编辑器只需一些简单实用的功能就够了。本程序设计就是依照这样一种使用需要设计了一个简单的记事本程序。 1.2功能设计 本程序要构建的记事本程序参照了Windows操作系统的记事本工具,其功能有以下几个方面: 1、菜单中有“文件”,“编辑”,“格式”,“查看”,“帮助”五个主菜单。 2、“文件”有“新建”“打开”“保存”“另存为”“退出”五个子菜单:分别用于新建文件,打开文件,保存文件,另存文件,退出记事本。 3、“编辑”中有“撤销”“剪切”“复制”“粘贴”“全选”“时间/日期”六个字菜单:用于撤销操作,剪切文字,复制文字,粘贴文字。全部选择,插入日期、时间。 4、“格式”菜单中有“自动换行”和“字体”两个子菜单。 5、“查看”菜单只是显示状态栏。 6、“帮助”菜单中只有“关于记事本”子菜单,主要用于显示该程序的名字,版本等信息。

JAVA简单记事本程序设计实验报告(带源码).

JAVA程序设计 实验报告 院系:信息工程系 专业:计算机应用技术 班级:11计算机01班 姓名:Civen 任课教师:XXX 实验题目:JA V A简单记事本程序设计

目录 目录 (1) 一、引言 (2) 1.1 课程设计目的 (2) 1.2 题目说明 (2) 1.3 开发工具介绍 (2) 二、总体设计 ......................................................................... - 4 - 2.1系统开发平台.............................................................. - 4 - 2.2 系统流程图 (4) 2.3功能结构图.................................... 错误!未定义书签。 2.4数据库设计.................................... 错误!未定义书签。 三、详细说明 (4) 3.1 系统实施................................................................... - 11 - 四、系统的调试和运行 (9) 五、课程设计总结 (9) 六、参考文献 (9) 附录(源程序代码) (10)

一、引言 1.1 课程设计目的 1) 复习,巩固Java语言的基础知识,进一步加深对Java语言的理解和掌握; 2) 课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和 实际有机的结合起来,锻炼学生的分析解决实际问题的能力,提高学生适应实际,实践编程的能力; 3) 培养学生在项目开发中团队合作精神,创新意识及能力。 1.掌握窗口、菜单等高级组件的应用。 2.掌握Java Swing的使用方法。 3.了解GUI应用程序的创建过程与方法。 1.2 题目说明 课题:学生成绩管理 4.功能要求: 编写一个简单记事本程序,要求包含以下菜单项 文件新建、打开、保存、退出 编辑剪切、拷贝、粘贴、查找 帮助关于 5.实现文件和编辑菜单里的功能 1.3 开发工具介绍 Eclipse是一种可扩展的开放源代码IDE。2001年11月,IBM公司捐出价值4,000万美元的源代码组建了Eclipse联盟,并由该联盟负责这种工具的后续开发。集成开发环境(IDE)经常将其应用范围限定在“开发、构建和调试”的周期之中。为了帮助集成开发环境(IDE)克服目前的局限性,业界厂商合作创建了Eclipse平台。Eclipse允许在同

(完整版)JAVA记事本源代码毕业设计

以下文档格式全部为word格式,下载后您可以任意修改编辑。 JAVA记事本源代码 import java.awt.*; import java.awt.event.*; import java.text.*; import java.util.*; import java.io.*; import javax.swing.undo.*; import javax.swing.*; import javax.swing.event.*; import java.awt.datatransfer.*; import java.util.List; public class Notepad4 extends JFrame implements ActionListener, DocumentListener { JMenu mFile, mEdit, mMode, mView, mHelp; ---文件菜单 JMenuItem mFile_New, mFile_Open, mFile_Save, mFile_ASave, mFile_Print, mFile_Exit; ---编辑菜单 JMenuItem mEdit_Undo, mEdit_Cut, mEdit_Copy, mEdit_Paste, mEdit_Del, mEdit_Search, mEdit_SearchNext, mEdit_Replace, mEdit_Turnto, mEdit_SelectAll, mEdit_TimeDate;

---格式菜单 JCheckBoxMenuItem formatMenu_LineWrap; JMenu formatMenu_Color; JMenuItem formatMenu_Font, formatMenu_Color_FgColor, formatMenu_Color_BgColor; ---查看菜单 JCheckBoxMenuItem viewMenu_Status; ---帮助菜单 JMenuItem mHelp_HelpTopics, mHelp_About; ---弹出菜单级菜单项 JPopupMenu popupMenu; JMenuItem popupMenu_Undo, popupMenu_Cut, popupMenu_Copy, popupMenu_Paste, popupMenu_Delete, popupMenu_SelectAll; ---工具栏按钮 JButton newButton, openButton, saveButton, saveAsButton, printButton, undoButton, redoButton, cutButton, copyButton, pasteButton, deleteButton, searchButton, timeButton, fontButton, boldButton, italicButton, fgcolorButton, bgcolorButton, ; 文本编辑区域 static JTextArea Text; 状态栏标签 JLabel statusLabel1, statusLabel2, statusLabel3; JToolBar statusBar; ---系统剪贴板 Toolkit toolKit = Toolkit.getDefaultToolkit();

仿windows JAVA 课程设计 记事本

前言 随时着科学技术的快速发展,计算机程序设计早已成为了趋势,JAVA是计算机专业的核心课程,是计算机科学的算法理论基础和软件设计的技术基础。JAVA是实践性很强的课程。课程设计是加强实践能力的一个强有力手段。要求掌握JAVA的应用、编写、上机调试的基本方法。本课程设计就是主要利用java语言编写的一个模仿windows 记事本的较简单的程序,实现了一些基本功能,要求打开文件,读取文件中的文本信息;显示、编辑修改文本信息;实现输入文本文件、控制保存文本信息到指定的文件的功能。 目录 一、需求分析 (1) 二、概要设计 (1) 三、详细设计 (2) 四、系统调试分析 (6) 五、课程设计心得体会 (7) 六、使用说明 (7) 七、参考文献及致 (7) 八、附录(程序源代码) (7)

一、需求分析 该课程设计报告里的简易记事本程序是使用Java程序设计语言编写的,要现记事本的基本功能,参考了windows中记事本的一些功能。要求打开文件,读取文件中的文本信息;显示、编辑修改文本信息;实现新建、打开、保存文本文件以及控制保存文本信息到指定的文件的一些基本功能。 二、概要设计 1.1 系统主要功能 本程序是利用java程序设计语言编写的一个简单的记事本程序。可以通过菜单栏和工具栏实现以下功能:如文件的新建,打开,保存和退出;对文件的编辑,如复制,剪切,粘贴;以及帮助菜单;执行完操作后,能够顺利关闭记事本。 1.2运行环境要求 (1) 实现设计的系统硬件需求 硬件配置的基本要求: * 586以上的计算机 * 32MB以上的存 * 彩色显示器 * 3.5寸高密软盘驱动器 * 光盘驱动器 * 4G以上硬盘空间 * 鼠标 (2) 实现设计的系统软件 * WINDOWS95或WINDOWS98 * Jcreator Pro全套软件 三、详细设计 设计思路:设计一个EditorDemo类,继承自JFrame类,并在EditorDemo类利用JtextPane 创建面板窗口textPane,利用Jlabel创建状态栏 statusBar,利用JFileChooser 创建文件选择器filechooser,利用JMenuBar创建并实例化菜单栏,利用JToolBar创建工具栏,再通过一些具体方法实现各功能键的功能。建立构造函数public EditorDemo();通过该构造函数实现记事本程序的主要功能,运行时在主类过调用该构造函数来实现对记事本程序的基本操作。 1:窗口设计 在主接口中设计一个EditorDemo容器继承自JFrame,并在其中加入菜单栏、工具栏和一个文本域控件。

Java记事本源代码(完整)

/** * 作品:记事本 * 作者:*** * 功能:简单的文字编辑 */ import java.awt.*; import java.awt.event.*; import java.io.*; import javax.swing.*; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; class NotePad extends JFrame{ private JMenuBar menuBar; private JMenu fielMenu,editMenu,formMenu,aboutMenu; private JMenuItem newMenuItem,openMenuItem,saveMenuItem,exitMenuItem; private JMenuItem cutMenuItem,copyMenuItem,pasteMenuItem,foundItem,replaceItem,s electAll; private JMenuItem font,about; private JTextArea textArea; private JFrame foundFrame,replaceFrame; private JCheckBoxMenuItem wrapline; private JTextField textField1=new JTextField(15); private JTextField textField2=new JTextField(15); private JButton startButton,replaceButton,reallButton; int start=0; String value; File file=null; JFileChooser fileChooser=new JFileChooser(); boolean wrap=false; public NotePad(){ //创建文本域 textArea=new JTextArea(); add(new JScrollPane(textArea),BorderLayout.CENTER); //创建文件菜单及文件菜单项 fielMenu=new JMenu("文件"); fielMenu.setFont(new Font("微软雅黑",0,15)); newMenuItem=new JMenuItem("新建",new

JAVA课程设计-编写一个记事本程序

Java语言程序设计B报告 题目:编写一个记事本程序 一.要求:用图形用户界面实现。能实现编辑、保存、另存为、查找替换等功能。提示:使用文件输入输出流。 二.课程设计思路。 设计两个类,一个记事本的类(JSB),具有程序的要求和功能再创建一个课设的主类(KESHE),在主类中创建一个JSB类的对象,就可以直接在编译器中运行程序。 在主界面中设计一个Frame容器,并在其中加入一个下拉菜单和一个文本域控件,把该容器设置为GridLayout(1,1)布局。 三.课程设计实现功能结构图。 3.1“文件”菜单。

3.2“编辑”菜单。

四.记事本实现功能代码实现。 4.1.界面设计。 主要代码: f=new Frame(s); p1=new TextArea(""); f.setSize(400,600); f.setBackground(Color.white); f.setVisible(true); menubar=new MenuBar(); menu1=new Menu("文件"); menu2=new Menu("编辑"); item1=new MenuItem("新建"); item2=new MenuItem("打开"); item3=new MenuItem("保存"); item4=new MenuItem("另存为"); item5=new MenuItem("退出"); item6=new MenuItem("全选"); item7=new MenuItem("复制"); item8=new MenuItem("剪切"); item9=new MenuItem("粘贴"); menu1.add(item1); menu1.add(item2);

java课程设计简单记事本开发内附完整代码流程图等

浙江科技学院 经济管理学院 JAVA语言课程设计报告 选题名称简单记事本开发 学生学号 专业班级 学生姓名 学生成绩 指导教师朱军 工作时间2012/06/27——2012/06/29

目录 第一章选题简介 主要利用面向对象的程序设计语言Java来实现简单记事本,能够进行输入文字操作,并具有新建文件,打开文件,保存文件,退出,复制,粘贴,剪切,查找,替换等功能,区别于一般的记事本,本程序利用了Java swing和事件监听等能够对文字的颜色进行设置。 第二章需求分析 1.系统要实现的目标分析 菜单中有文件,编辑,格式,视图风格,帮助五个主菜单。 (1)“文件”有新建、打开、保存、另存为、退出五个子菜单:分别用于新建文件,打开文件,保存文件,更改存储地址,退出记事本。 (2)“编辑”中有复制、剪切、粘贴、删除、查找、查找下一个、替换、替换下一个、全选、日期/时间十个字菜单:用于复制文字,剪切文字,粘贴文字,删除文字,查找文字,查找下一个文字,替换文字,替换下一个文字,选择文字,添加日期和者时间。 (3)“格式”中有字体样式、字体大小、字体颜色,自动换行。字体样式中又包含了正常、粗体、斜体3中字体样式,可以对文字的字体样式做修改。字体大小中又包含了最大、较大、适中、较小、最小这5个大小范围。字体颜色可以对字体进行颜色上的修改,是字体更加漂亮。自动换行能够实现文档在编辑是需要的自动换行功能。 (4)“视图风格”中有MOTIF风格,默认风格,状态栏。当用户选择MOTIF 风格,软件界面会切换成MOTIF风格界面。当用户选择默认风格,软件界面会切换成默认风格界面。点击状态栏时可以对状态栏进行显示和隐藏。 (5)“帮助”中有帮助主题和关于,可以解决用户在使用记事本中的一些问题。 (6)“快捷键”,在菜单栏下面增加了一排快捷键,可以对稳定进行快速的修改、操作等命令。快捷键主要有新建、打开、保存、复制、剪切、黏贴、删除、查找、字体颜色、帮助主题、退出。 2.对输入输出数据及流程的分析 本次设计中,设计了一个菜单栏和文本内容区。设计过程中用到了JScrollPane,JMenu,JTextPane,JFileChooser等。JMenu用来制作菜单,JTextPane主要用来输入文本。为了加入颜色的设置,所以加了一个JColorChooser组件。整个记事本分为2块:菜单栏和内容输入区。本程序中首先定义一个myfr类继承JFrame作为最底层容器。Textcontent为程序文本输入区。Menu为菜单栏。AboutDialog为关于对话框。要想记事本完成需求分析中相

(完整word版)如何用记事本编写一个简单的java代码

一:怎么用记事本写第一个java代码? 第一步:新建txt文档 首先我们在F盘新建一个txt文档,并命名为Test.java,如下图所示: 第二步:编写代码 我们双击打开:如下图所示 第三步:编写好代码 我们在记事本中写代码,写好后如下所示:

然后我们同时按Ctrl+s键保存,然后关闭记事本即可 上面的源代码如下: public class Test{//这里的Test为类名,这里类名要与我们刚才新建的记事本的名字必须一致,首字母大写 public static void main(String[] args){//java中的主函数的写法 System.out.println("HelloWorld");//java中的输出语句写法} } 第三步:打开控制台界面 我们在计算机中,打开如下图界面,

然后在这里,输入cmd,并按回车,然后弹出如图所示

第四步:在控制台中运行并输出 我们用鼠标点击一下里面黑色部分,然后输入F:然后回车,然后再输入javac Test.java然后回车,最后输入java Test,就可以看到结果了,如下图所示:

红色圈出来部分就是结果了 二:温馨提示: 1,上面演算中在控制台中首先输入F:的原因是因为我在F盘建立一个文本文档,并命名为Test.java,如果你是把你的文档文档建立在D盘,则应该输 入D: 以此类推。 2,如果你是在F盘下的CH文件夹建立一个记事本,并命名为Test.java,则输入的情况如下, cd CH表示转到CH这个文件夹下,然后再输入java.Test.java回车,再输入java Test就可以看到运行结果了 3,如果你在D盘下的CH的文件夹下新建一个为ch 的文件夹,并且在ch的文件夹下新建一个txt文

安卓记事本程序源代码

1?¢MainActivity 01.package cn.dccssq; 02. 03.import android.app.ListActivity; 04.import android.content.Intent; 05.import android.database.Cursor; 06.import android.os.Bundle; 07.import android.util.Log; 08.import android.view.Menu; 09.import android.view.MenuItem; 10.import android.view.View; 11.import android.widget.ListAdapter; 12.import android.widget.ListView; 13.import android.widget.SimpleCursorAdapter; 14. 15.public class MainActivity extends ListActivity { 16. 17. private static final int INSERT_ID = Menu.FIRST; 18. 19. private static final int DELETE_ID = Menu.FIRST + 1; 20. 21. private static final int ACTIVITY_CREATE = 0; 22. 23. private static final int ACTIVITY_EDIT = 1; 24. 25. private DiaryDbAdapter diaryDb; 26. 27. private Cursor cursor; 28. /** Called when the activity is first created. */ 29. @Override 30. public void onCreate(Bundle savedInstanceState) { 31. super.onCreate(savedInstanceState); 32. setContentView(https://www.doczj.com/doc/89755676.html,yout.main); 33. 34. diaryDb =new DiaryDbAdapter(this); 35. diaryDb.open(); 36. 37. } 38. 39. private void showListView(){

如何用记事本编写一个简单的java代码

:怎么用记事本写第一个java代码? 第一步:新建txt文档 首先我们在F盘新建一个txt文档,并命名为Test.java, 如下图所示: 第二步:编写代码 我们双击打开:如下图所示 第三步:编写好代码 我们在记事本中写代码,写好后如下所示:

立耿円?|r K£|D| *51CH1 piAlit! d曲g仁就</7述里的Test为类各煤里类名象与我们月眼;新建时记事北的名字挹须一毀”首宇母九马tmblic static void mln(Strlns□ ar厨申的圭昌揪的骂法 jvsikim. out. print In(or Id"1. j^u 申的:址出话甸旨三 然后我们同时按Ctrl+s键保存,然后关闭记事本即可上面的源代码如下: public class Test{/这里的Test为类名,这里类名要与我们刚才新建的记事本的名字必须一致,首字母大写 public static void main(String[] args){//java 中的主函数的写法 System.out.println("HelloWorld");//java 中的输出语句写法} } 第三步:打开控制台界面 我们在计算机中,打开如下图界面,

然后在这里,输入cmd,并按回车,然后弹出如图所示

第四步:在控制台中运行并输出 我们用鼠标点击一下里面黑色部分,然后输入F:然后回车,然后再输入javac Test.java然后回车,最后输入java Test就可以看到结果了,如下图所示:

红色圈出来部分就是结果了 —:温馨提示: 1,上面演算中在控制台中首先输入F:的原因是因为我在F盘建立一个文本文档,并命名为Test.javq如果你是把你的文档文档建立在D盘,则应该输入D:以此类推。2,如果你是在F盘下的CH文件夹建立一个记事本,并命名为Test.java则输入的情况如下,

java编写的记事本源代码

import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.text.*; import javax.swing.event.*; public class IJMFrame extends JFrame { Document document = null; JTextArea textArea = new JTextArea(); JScrollPane scrollPane = new JScrollPane(textArea); EditController controller; //------ 定义菜单变量------// JMenuBar menuBar = new JMenuBar(); JMenu menuFile = new JMenu("文件"); JMenu menuEdit = new JMenu("编辑"); JMenu menuFormat = new JMenu("格式"); JPopupMenu memuPopup = new JPopupMenu(); JMenuItem itemNew = new JMenuItem("新建"); JMenuItem itemOpen = new JMenuItem("打开"); JMenuItem itemSave = new JMenuItem("保存"); JMenuItem itemSaveAs = new JMenuItem("另存"); JMenuItem itemExit = new JMenuItem("退出"); JMenuItem itemUndo = new JMenuItem("撤消"); JMenuItem itemCut = new JMenuItem("剪切"); JMenuItem itemCopy = new JMenuItem("复制"); JMenuItem itemPaste = new JMenuItem("粘贴"); JMenuItem itemDelete = new JMenuItem("删除"); JMenuItem itemFind = new JMenuItem("查找"); JMenuItem itemReplace = new JMenuItem("替换"); JMenuItem itemSelectAll = new JMenuItem("全选"); JMenuItem itemFont = new JMenuItem("字体"); //------------定义右键菜单------------------------// JMenuItem popupMenu_Undo=new JMenuItem("撤销"); JMenuItem popupMenu_Cut=new JMenuItem("剪切"); JMenuItem popupMenu_Copy=new JMenuItem("复制"); JMenuItem popupMenu_Paste=new JMenuItem("粘贴"); JMenuItem popupMenu_Delete=new JMenuItem("删除"); JMenuItem popupMenu_SelectAll=new JMenuItem("全选"); public IJMFrame() { super("记事本");

JAVA课程设计 编写一个记事本程序

Java语言程序设计B报 告 班级: 学号: 姓名: 成绩: 2012年12月

题目:编写一个记事本程序一.课程设计题目概要。 1.1课程设计目的 1.2题目设计要求 二.课程设计思路。 三.课程设计实现功能结构图。 3.1“文件”菜单。 3.2“编辑”菜单。 四.记事本实现功能代码实现。 4.1界面设计代码实现及实现截图。 4.2功能代码详细设计 4.2.1新建文件 4.2.2打开文件 4.2.3复制文件 4.2.4粘贴文件 4.2.5退出记事本 五.JAVA课程设计个人总结。 附:JAVA课程设计程序源代码

一.课程设计题目概要。 1.1课程设计目的。 按照老师要求,编写一个记事本程序,并可以实现老师要求的相关功能。在课程设计过程中,复习巩固Java语言的基础知识,进一步加深对Java语言的理解和掌握,将课本上的理论知识和实际有机的结合起来,锻炼自己的分析解决实际问题的能力,提高自己实践编程的能力。 1.2题目设计要求。 要求:用图形用户界面实现。能实现编辑、保存、另存为、查找替换等功能。提示:使用文件输入输出流。 二.课程设计思路。 设计两个类,一个记事本的类(JSB),具有程序的要求和功能再创建一个课设的主类(KESHE),在主类中创建一个JSB类的对象,就可以直接在编译器中运行程序。 在主界面中设计一个Frame容器,并在其中加入一个下拉菜单和一个文本域控件,把该容器设置为GridLayout(1,1)布局。 三.课程设计实现功能结构图。 3.1“文件”菜单。

3.2“编辑”菜单。

四.记事本实现功能代码实现。 4.1.界面设计。 主要代码: f=new Frame(s); p1=new TextArea(""); f.setSize(400,600); f.setBackground(Color.white); f.setVisible(true); menubar=new MenuBar(); menu1=new Menu("文件"); menu2=new Menu("编辑"); item1=new MenuItem("新建"); item2=new MenuItem("打开"); item3=new MenuItem("保存"); item4=new MenuItem("另存为"); item5=new MenuItem("退出"); item6=new MenuItem("全选"); item7=new MenuItem("复制"); item8=new MenuItem("剪切"); item9=new MenuItem("粘贴"); menu1.add(item1); menu1.add(item2);

JAVA简单记事本程序(源代码)课程设计

辽宁工业大学 JA V A程序设计课程设计(论文)题目: JAVA简单记事本程序 院(系):软件学院 专业班级:软件工程班 学号: 学生姓名: 指导教师: 教师职称: 起止时间:

程序设计专题(报告)任务及评语

目录 第1章课程设计的目的与要求 (4) 1.1 课程设计目的 (4) 1.2 课程设计的实验环境 (4) 1.3 课程设计的预备知识 (4) 1.4 课程设计要求 (4) 第2章课程设计内容 (5) 2.1课题描述 (5) 2.2 系统设计 (5) 2.2.1功能分析 (5) 2.2.2面向对象设计 (5) 2.2.3详细设计 (7) 2.3程序实现 (10) 2.3.1源码分析 (10) 2.3.1运行结果 (14) 第3章总结 (18) 参考文献19

第1章课程设计的目的与要求 1.1 课程设计目的 《JA V A程序设计》是计算机相关专业的必修专业基础课程,其实践性、应用性很强。实践教学环节是必不可少的一个重要环节。本课程的程序设计专题实际是计算机相关专业学生学习完《JAVA程序设计》课程后,进行的一次全面的综合训练,JA V A程序设计的设计目的是加深对理论教学内容的理解和掌握,使学生较系统地掌握程序设计及其在网络开发中的广泛应用,基本方法及技巧,为学生综合运用所学知识,利用软件工程为基础进行软件开发、并在实践应用方面打下一定基础。 1.2 课程设计的实验环境 硬件要求能运行Windows 9.X操作系统的微机系统。JAVA程序设计语言及相应的集成开发环境,J2SDK和ECLIPSE开发工具。 1.3 课程设计的预备知识 熟悉JAVA语言及ECLIPSE开发工具。 1.4 课程设计要求 按课程设计指导书提供的课题,要求学生在自行完成各个操作环节,并能实现且达到举一反三的目的,完成一个项目解决一类问题。要求学生能够全面、深入理解和熟练掌握所学内容,并能够用其分析、设计和解答类似问题;对此能够较好地理解和掌握,能够进行简单分析和判断;能编写出具有良好风格的程序;掌握JA V A程序设计的基本技能和面向对象的概念和方法;了解多线程、安全和网络等编程技术。同时培养学生进行分析问题、解决问题的能力;培养学生进行设计分析、设计方法、设计操作与测试、设计过程的观察、理解和归纳能力的提高。

基于java的记事本程序课程设计(含源文件)

1 问题描述 设计一个具有GUI界面的记事本,含有简单的文字编辑功能,如:剪切、复制、粘贴、删除;还能实现保存、另存为、设置字体和颜色等功能。 这次课程设计由**、**和我三个人合作完成。**主要负责3概要设计和5测试分析。**4.1GUI程序界面设计,我负责4. 2JM4类的实现。由于4.3事件处理和撰写程序关系密切,这两项都由**负责。 2 需求分析 本程序要构建的记事本程序参照了Windows操作系统的记事本工具,其功能有以下几个方面: (1)、菜单中有“文件”、“编辑”、“格式”、“帮助”四个主菜单; (2)、“文件”有“新建”、“打开”、“保存”、“另存为”、“退出”分别用于新建文件,打开文件,保存文件,另存文件,退出记事本。 (3)、“编辑”有“剪切”、“复制”、“粘贴”三个子菜单:用于剪切文字,复制文字,粘贴文字,删除文字。 (4)、“格式”中,有“字体”、“颜色”两个子菜单:用于设置文字的字体而和颜色,字体有“宋体”、“楷体”、“黑体”颜色有“红”、“蓝”、“绿”。 (5)、“帮助”菜单中有“关于”的子菜单,用于描述记事本程序的相关信息。 (6)、还有弹出菜单也能实现“剪切”、“复制”、“粘贴”三个子菜单的功能。 3 概要设计 3.1自定义类说明 3.1.1 类名: JM (1)作用: 主类 (2)继承的父类: JFrame类 (3)成员变量说明: JMenuBar mb=new JMenuBar(); //定义一个菜单项 /******定义各个菜单及其菜单项******/

JMenu m1=new JMenu("文件(F)"); JMenuItem n=new JMenuItem("新建"); JMenuItem open=new JMenuItem("打开(O)... Ctrl+O"); JMenuItem save=new JMenuItem("保存(S)... Ctrl+S"); JMenuItem save_as=new JMenuItem("另存为(A)...Ctrl+A"); JMenuItem exit=new JMenuItem("退出"); JMenu m2=new JMenu("编辑(E)"); JMenuItem copy=new JMenuItem("复制(C) Ctrl+C"); JMenuItem cut=new JMenuItem("剪切(X) Ctrl+X"); JMenuItem paste=new JMenuItem("粘贴(P) Ctrl+P"); JMenu m3=new JMenu("格式(O)"); JMenu f1=new JMenu("字体(F)"); JMenuItem i11=new JMenuItem("宋体"); JMenuItem i12=new JMenuItem("楷体"); JMenuItem i13=new JMenuItem("黑体"); JMenu color=new JMenu("颜色(C)"); JMenuItem i21=new JMenuItem("红"); JMenuItem i22=new JMenuItem("蓝"); JMenuItem i23=new JMenuItem("绿"); JMenu m4=new JMenu("帮助(H)"); JMenuItem about=new JMenuItem("关于"); /*****定义弹出菜单及其菜单项*****/ JPopupMenu pm=new JPopupMenu(); JMenuItem item1=new JMenuItem("复制"); JMenuItem item2=new JMenuItem("剪切"); JMenuItem item3=new JMenuItem("粘贴"); /***********编辑区**********/ String s;

Java完整简单记事本源代码

版权所有请勿抄袭 AboutDialog.java package notepad; import java.awt.Color; import java.awt.Font; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JDialog; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; public class AboutDialog implements ActionListener{ public JDialog Dialog; public JButton OK,Icon; public JLabel Name,Version,Author,Java; public JPanel Panel; AboutDialog(JFrame notepad, int x, int y) { Dialog=new JDialog(notepad,"About Notepad...",true); OK=new JButton("OK"); Icon=new JButton(new ImageIcon("Notepad.jpg")); Name=new JLabel("Notepad"); Version=new JLabel("Version 1.0"); Java=new JLabel("JRE Version 6.0"); Author=new JLabel("Copyright (c) 2011 Sky. No rights reserved."); Panel=new JPanel(); Color c=new Color(0,95,191); Name.setForeground(c); Version.setForeground(c); Java.setForeground(c); Panel.setBackground(Color.WHITE); OK.setFocusable(false); Dialog.setSize(280, 180); Dialog.setLocation(x, y); Dialog.setResizable(false); Dialog.setLayout(null); Panel.setLayout(null); OK.addActionListener(this); Icon.setFocusable(false); Icon.setBorderPainted(false); Author.setFont(new Font(null,Font.PLAIN,11)); Panel.add(Icon); Panel.add(Name); Panel.add(Version); Panel.add(Author);

(完整版)JAVA记事本源代码毕业设计论文

JAVA记事本源代码 import java.awt.*; import java.awt.event.*; import java.text.*; import java.util.*; import java.io.*; import javax.swing.undo.*; import javax.swing.*; import javax.swing.event.*; import java.awt.datatransfer.*; import java.util.List; public class Notepad4 extends JFrame implements ActionListener, DocumentListener { JMenu mFile, mEdit, mMode, mView, mHelp; ---文件菜单 JMenuItem mFile_New, mFile_Open, mFile_Save, mFile_ASave, mFile_Print, mFile_Exit; ---编辑菜单 JMenuItem mEdit_Undo, mEdit_Cut, mEdit_Copy, mEdit_Paste, mEdit_Del,

mEdit_Search, mEdit_SearchNext, mEdit_Replace, mEdit_Turnto, mEdit_SelectAll, mEdit_TimeDate; ---格式菜单 JCheckBoxMenuItem formatMenu_LineWrap; JMenu formatMenu_Color; JMenuItem formatMenu_Font, formatMenu_Color_FgColor, formatMenu_Color_BgColor; ---查看菜单 JCheckBoxMenuItem viewMenu_Status; ---帮助菜单 JMenuItem mHelp_HelpTopics, mHelp_About; ---弹出菜单级菜单项 JPopupMenu popupMenu; JMenuItem popupMenu_Undo, popupMenu_Cut, popupMenu_Copy, popupMenu_Paste, popupMenu_Delete, popupMenu_SelectAll; ---工具栏按钮 JButton newButton, openButton, saveButton, saveAsButton, printButton, undoButton, redoButton, cutButton, copyButton, pasteButton, deleteButton, searchButton, timeButton, fontButton, boldButton, italicButton, fgcolorButton, bgcolorButton, ; 文本编辑区域 static JTextArea Text; 状态栏标签 JLabel statusLabel1, statusLabel2, statusLabel3; JToolBar statusBar;

相关主题
文本预览
相关文档 最新文档