以在联想小新PAD PRO115英寸电脑、WIN10专业版 *** 作系统为例,可以现在电脑中将记事本程序打开。然后在打开的该记事本中输入需要的内容并进行保存即可。具体的 *** 作方法如下:
1、点击电脑任务栏的搜索按钮,输入记事本进行搜索。
2、搜索以后找到记事本程序,点击进入。
3、页面跳转以后进入到记事本界面,输入需要的内容。
4、输入完成以后点击文件,选择保存按钮。
5、在出现的对话框中选择存储位置并输入文件名称,点击保存按钮。
6、此时即可看到已经在记事本中输入了需要的内容并保存好了。
代码如下:
import javaio;import javaawt;
import javaawtevent;
public class jtxtfm{
public static void main(String args[]){
jtxtfrm fm=new jtxtfrm();
}
}
class jtxtfrm extends Frame implements ActionListener{
FileDialog op,sv;
Button btn1,btn2,btn3;
TextArea tarea;
jtxtfrm(){
super("读写文件");
setLayout(null);
setBackground(Colorcyan);
setSize(600,300);
setVisible(true);
btn1=new Button("打开");
btn2=new Button("保存");
btn3=new Button("关闭");
tarea=new TextArea("");
add(btn1);add(btn2);add(btn3);add(tarea);
tareasetBounds(30,50,460,220);
btn1setBounds(520,60,50,30);
btn2setBounds(520,120,50,30);
btn3setBounds(520,180,50,30);
op=new FileDialog(this,"打开",FileDialogLOAD);
sv=new FileDialog(this,"保存",FileDialogSAVE);
btn1addActionListener(this);
btn2addActionListener(this);
btn3addActionListener(this);
addWindowListener(
new WindowAdapter(){
public void windowClosing(WindowEvent e){
setVisible(false);
Systemexit(0);
}
}
);
}
public void actionPerformed(ActionEvent e){
if(egetSource()==btn1){
String str;
opsetVisible(true);
try{
File f1=new File(opgetDirectory(),opgetFile());
FileReader fr=new FileReader(f1);
BufferedReader br=new BufferedReader(fr);
tareasetText("");
while((str=brreadLine())!=null)tareaappend(str+'\n');
frclose();
}
catch(Exception e1)
{}
}
if(egetSource()==btn2){
svsetVisible(true);
try{
File f1=new File(svgetDirectory(),svgetFile());
FileWriter fw=new FileWriter(f1);
BufferedWriter bw=new BufferedWriter(fw);
String gt=tareagetText();
bwwrite(gt,0,gtlength());
bwflush();
fwclose();
}
catch ( Exception e2)
{}
}
if(egetSource()==btn3){
Systemexit(0);
}
}
}
效果图:
#include <iostream>
#include <fstream>
using namespace std;
int main(){
ofstream ofile;
ifstream ifile;
string t1, t2;
ifileopen("C:\\Text1txt");
ifile >> t1;
ifileclose();
cout << endl
<< "The file Text1txt contains the following sentence: "
<< t1
<< endl;
cout << endl
<< "Please enter another sentence to be saved on Text2txt: ";
cin >> t2;
ofileopen("C:\\Text2txt");
ofile << t2;
ofileclose();
t1+=" "+t2;
cout << endl
<< "The merged sentence is: "
<< t1
<< endl;
ofileopen("C:\\Text3txt");
ofile << t1;
ofileclose();
cout << endl;
}
#include<stdioh>
#include<malloch>
#include<stringh>
#include<stdlibh>
#include<ctypeh>
#define NULL 0
#define MAX 100
typedef struct lnode{
char date[MAX]; //存放数据
struct lnode prior ; //前驱
struct lnode next ; //后继
int number ; //记录一个节点的字符数!如果是头节点就记录他的节点个数
int quese ; //记录节点在链表中的位置
}lnodetype;
lnodetype l ; //设置两个全局变量,分别是头节点指针和尾节点指针
lnodetype end ;
//这个函数是用来初始化的//
int iniatelist (lnodetype l , lnodetype end)
{
(l) = (lnodetype )malloc (sizeof (lnodetype) ) ;
if ( (l) == NULL )
{
printf ("没有只够的内存空间!程序即将退出!");
return 0 ;
}
(l)->prior =(l)->next = NULL ; //这是双链表
(l)->number = (l)->quese = 0;
(end) = (l) ;
printf ("程序初始化完毕!");
return 0;
}
//这个函数是用来建立节点,并且插入元素的//
int link(lnodetype l, lnodetype end)
{
lnodetype s ;
s = (lnodetype )malloc ( sizeof (lnodetype) ) ;
if ( s == NULL ){
printf ("内存空间不够,程序即将退出!") ;
return 0 ;
}
(end)->next = s ;
s->prior = (end) ;
(end) = (end)->next ;
(l)->number++ ; //增加一个节点,头节点的number就加1
s->quese = (l)->number ; //这个是记录节点在链表中的位置
printf ("%d行", s->quese ) ; //这个是节点在整个链表中的位置
gets(s->date) ;
s -> number = strlen(s->date) ;
return 0 ;
}
//这个是打印链表的函数//
int prin (lnodetype l, lnodetype end)
{
lnodetype p ;
int i ;
int j = 0;
int couter = (l)->number ;
p = (l)->next ;
for (i=0; i < couter; i++){
printf ( "%d行" , i+1 ) ;
j = 0;
while ( ( p->date[j]>='a' && p->date[j]<='z') ||
(p->date[j]>='A' && p->date[j]<='z') ||
p->date[j]>='0' && p->date[j]<='9')
{
printf ( "%c" , p->date[j] ) ;
j++ ;
}
printf ("n") ;
p = p->next ;
}
return 0 ;
}
//这个查找和编辑相应行的函数//
int search (lnodetype l, lnodetype end )
{
int number ;
scanf ("%d" , &number) ;
int i ;
lnodetype p ;
p = (l)->next ;
for ( i=0; i<number-1; i++ )
p = p->next ;
printf ("%d行" , number ) ;
gets (p->date) ;
return 0 ;
}
//这个是在文本文件里搜索字符串的函数//
int searchstr(lnodetype l , lnodetype end)
{
char ptr[100] ;
int arrycouter ;
int mystrcmp( char , char , int ) ;
printf ( "ok!现在输入你查找的字符串!" ) ;
scanf ( "%s" , ptr ) ;
arrycouter = strlen (ptr) ;
lnodetype s ;
s = (l)->next ;
char p ;
int i = 1 ;
int couter = 0 ;
int number = (l)->number ;
p = (char )s->date ;
while ( i && number ){
// i=1是,证明没有找到,向第二个节点继续寻找
while ( i && ( ( (p >= 'a') && (p <= 'z') ) || ( (p >= 'A') && (p <= 'Z') ) ) ){
i = mystrcmp ( p , ptr , arrycouter );
if ( i == 1 ){
printf ("字符串已经在第%d行,第%d个字符开始,",s->quese, couter+1 );
i = 0 ;
}
else
{
p++ ;
couter++;
i = 1 ;
}
}
s = s->next ;
p = (char )s->date ;
number -- ;
}
if ( i == 1 )
printf ("字符串在本文档中不存在!");
return 0 ;
}
//(1)这个函数是用来实现退出不保存功能的//
int exitunsave(lnodetype l, lnodetype end)
{
lnodetype s ;
while( (l) != (end) ){ //如果不保存的话,最好是把节点的空间都释放,节省空间
s = (end) ;
(end) = (end)->prior ;
free( s ) ;
}
return 0 ;
}
//(2)这个函数是用来实现退出但保存功能的//
int quitandsave( lnodetype l , lnodetype end )
{
FILE fp ;
char ch ;
char filename[20] ;
lnodetype p;
int i ;
int j ;
int couter = (l)->number ;
p = (l)->next ;
printf ("请输入文件名:") ;
scanf ("%s" , filename ) ;
if ( (fp = fopen( filename , "w" )) == NULL ){
printf ("文件不能打开!n");
return 0 ;
}
for ( i=0; i<couter; i++ ){ //有几个节点就进行多少次的存贮
ch = p->date[0] ;
j = 1 ;
while (ch != '\0'){
fputc (ch , fp) ;
ch = p->date[j] ;
j++ ;
}
p = p->next ;
fputc ( '#' , fp ) ; //注意在每个节点的后面加上结束的符号
}
fputc ( '@' , fp ) ; //整个文件关闭的标志
fclose ( fp ) ; //注意关闭文件,
return 0 ;
}
//由于库函数比较字符串提供的功能不满足要求,故自己写了一个/
int mystrcmp( char p ,char sour ,int number )
{
while ( number && (p) == (sour) &&
( ( (p >= 'a') && (p <= 'z') ) || ( (p >= 'A') && (p <= 'Z') ) )){
p++ ;
sour++ ;
number-- ;
}
if ( number == 0 )
return 1 ;
else
return 0 ;
}
//这个函数是用来实现统计字符串功能的//
int coutword(lnodetype l , lnodetype end)
{ //考虑到只统计一行的单词没有意义,故统计整个文本
int yes = 1 ; //这个是进入单词的标志
int no = 0 ; //在单词外面的时候的标志
int i , j ,inaword ,count = 0 ;
inaword = no ;
lnodetype s = (l)->next ;
for (j=0; j<(l)->number; j++){
for ( i=0; (s->date[i]>='a' && s->date[i]<='z') ||
(s->date[i]>='A' && s->date[i]<='z') ||
(s->date[i]>='0' && s->date[i]<='9' ) ||
(s->date[i]==' '); i++ )
{
if ( s->date[i] == ' ' )
inaword = no ;
else
if ( inaword == no )
{
inaword = yes ;
count++ ; //计算单词
}
}
s = s->next ;
inaword = 0 ; //注意这里,把标志置为0了!
}
printf ( "n文本一共有 %d 行" , (l)->number ) ;
printf ("n此文本一共有 %d 个单词!" , count ) ;
return count ;
}
//这个函数是用来实现计算文本行数功能的//
int linecouter(lnodetype l , lnodetype end )
{
int couter ;
couter = (l)->number ;
return couter ;
}
//这个函数是整和一上所有功能的菜单函数//
int editmenu(lnodetype l , lnodetype end )
{
char choice ;
char p = "cls" ;
int i = 1 ; //这两个变量是用来控制循环的
int j= 1 ;
system (p) ;
prin (&(l) , &(end)) ;
while (j){
printf (" e: 编辑相应行 n") ;
printf (" s: 搜索字符串 n") ;
printf (" t: 统计单词个数 n") ;
printf (" q: 退出编辑 n") ;
scanf("%c",&choice);
scanf("%c" , &choice) ; //????莫名其妙的问题,非要两个请求输入语句才肯停下来!
switch (choice)
{
case 'e' : {
i = 1 ;
while (i)
{
search( &(l) , &(end) );
system (p) ;
prin( &(l) , &(end) ) ;
printf ("n1 继续编辑 0 结束编辑n") ;
scanf ("%d" , &i) ;
}
}
break;
case 's' : {
i = 1 ;
while (i)
{
searchstr( &(l) , &(end) );
getchar();
getchar();
system (p) ;
prin( &(l) , &(end) ) ;
printf ("n1 继续搜索 0 结束搜索n") ;
scanf ("%d" , &i) ;
}
}
break;
case 't' : {
coutword ( &(l) , &(end) ) ;
getchar() ;
}break;
default : return 0 ;
}
system (p) ;
prin( &(l) , &(end) ) ;
printf ("n1 回到编辑菜单 0 结束编辑n") ;
scanf ("%d" , &j) ;
if (j == 1)
system (p) ;
else
return 0 ;
}
return 0 ;
}
//实现第一个模块:新建空白文档//
int newtext( lnodetype l ,lnodetype end )
{
printf ( "新文本文件:n" ) ;
int i = 1 ;
char judstr[MAX] ;
lnodetype temp ;
char jud ;
char p = "cls" ;
while ( 1 ){
link( &(l) , &(end) ) ;
jud = (end)->date[0] ;
if ( jud == '5' ){ //输入‘5’结束一切
temp = (end) ;
(end) = (end)->prior ;
free (temp) ;
while (1){
printf ( " out :退出不保存 n") ;
printf ( " edit :编辑信息 n") ;
printf ( " quit :退出而不存盘 n") ;
printf ( " qas :退出且存盘 n") ;
printf ( " con :继续输入! n") ;
gets(judstr) ;
if ( !strcmp(judstr , "out") )
{
exitunsave( &(l) , &(end) ) ;
return 0 ;
}
else
if ( !strcmp(judstr , "qas") )
{
quitandsave( &(l) , &(end) ) ;
return 0 ;
}
else
if ( !strcmp(judstr , "edit") )
{
editmenu (l , end) ;
return 0;
}
system (p) ;
}
return 0 ;
}
}
return 0 ;
}
//这个是装入文件的函数//
int loadtaxt( char filename )
{
FILE fp ;
lnodetype l ;
char ch ;
int i = 0 ;
char p = "cls" ;
char judstr[MAX] ;
lnodetype head ;
lnodetype end ;
iniatelist ( &head , &end) ;
l = end = head ;
if ( (fp = fopen( filename, "r+")) == NULL ){
printf ("文件不能打开!n") ;
return 0 ;
}
ch = fgetc ( fp ) ;
while ( ch != '@' ){
lnodetype s ;
s = (lnodetype )malloc ( sizeof (lnodetype) ) ;
if ( s == NULL ){
printf ("内存空间不够,程序即将退出!") ;
return 0 ;
}
end->next = s ;
s->prior = end ;
end = end->next ;
l->number++ ;
s->quese = l->number ;
printf ("%d行", s->quese ) ;
while ( ch != '#'){
s->date[i] = ch ;
ch = fgetc (fp) ;
i++ ;
}
i = 0;
while ( (end->date[i]>='a' && end->date[i]<='z') ||
(end->date[i]>='A' && end->date[i]<='z') ||
(end->date[i]>='0' && end->date[i]<='9' ) ||
(end->date[i]==' ') )
{
printf ( "%c" , end->date[i] ) ;
i++ ;
}
end->date[i] = '\0' ; //注意在节点的最好加上这个,以让退出保存功能函数知道此节点已结束
printf ( "n" ) ;
i = 0;
ch = fgetc ( fp ) ;
}
fclose (fp) ;
printf ("n文件成功装入!n") ;
while (1){
printf ( " out :退出不保存 n") ;
printf ( " edit :编辑信息 n") ;
printf ( " qas :退出且存盘 n") ;
printf ( " con :继续输入! n") ;
scanf("%s",judstr);
if ( !strcmp(judstr , "out") )
{
exitunsave( &l , &end ) ;
return 0 ;
}
else
if ( !strcmp(judstr , "qas") )
{
quitandsave( &l , &end ) ;
return 0 ;
}
else
if ( !strcmp(judstr , "edit") )
{
editmenu (&l , &end) ;
return 0 ;
}
system (p) ;
}
return 0 ;
}
//主函数//
void main ( void )
{
//iniatelist (&l , &end) ;
//newtext(&l , &end) ;
char filename[MAX] ;
scanf ( "%s" , filename ) ;
loadtaxt( filename ) ;
}
很不容易做的程序!!!
通过编译
是记事本的样式吗?就要这些要求吗?
下面这些代码的功能挺全的,可以参考一下,不用的可以删掉。
import javaio;
import javautilCalendar;
import javaawt;
import javaawtevent;
import javaxswing;
import javaxswingevent;
public class NoteBook extends JFrame implements ActionListener,ItemListener,WindowListener,MouseListener
{ Container c = thisgetContentPane();
JMenuBar jmb = new JMenuBar();
JColorChooser jcl = new JColorChooser();
JToolBar jToolBar = new JToolBar();
JButton jButton1 = new JButton();
JButton jButton2 = new JButton();
JButton jButton3 = new JButton();
JButton jButton4 = new JButton();
JMenu jm1 = new JMenu("文件(F)");
JMenu jm2 = new JMenu("编辑(E)");
JMenu jm4 = new JMenu("格式(O)");
JMenu jm5 = new JMenu("查看(V)");
JMenu jm3 = new JMenu("帮助(H)");
JMenuItem jmi1 = new JMenuItem("新建(N)");
JMenuItem jmi2 = new JMenuItem("打开(O)");
JMenuItem jmi3 = new JMenuItem("保存(S)");
JMenuItem jmi4 = new JMenuItem("退出(X)");
JMenu jmd4=new JMenu("颜色");
JMenu jmd0=new JMenu("字体");
JMenuItem aa=new JMenuItem("复制(C)");
JMenuItem bb=new JMenuItem("剪切(X)");
JMenuItem cc=new JMenuItem("粘贴(V)");
JCheckBoxMenuItem jcuti1 = new JCheckBoxMenuItem("粗体");
JCheckBoxMenuItem jxieti1 = new JCheckBoxMenuItem("斜体");
JMenuItem jmp1 = new JMenuItem("日期和时间");
JMenuItem jmp2 = new JMenuItem("背景颜色(H)");
JMenuItem jmi5 = new JMenuItem("删除内容(S)");
JMenuItem jmi7=new JMenuItem("关于自己");
JTextArea jta = new JTextArea(23,15);
JScrollPane jsp = new JScrollPane(jta);
JMenuItem jmdb1=new JMenuItem("**");//定义各种颜色
JMenuItem jmdb2=new JMenuItem("红色");
JMenuItem jmdb3=new JMenuItem("绿色");
JMenuItem jmdb4=new JMenuItem("蓝色");
JMenuItem jmdb5=new JMenuItem("黑色");
NoteBook()
{ thisaddWindowListener(this);
setBounds(200,200,200,200);
cadd(jmb,BorderLayoutNORTH);
validate();
setDefaultCloseOperation(JFrameEXIT_ON_CLOSE);
thissetResizable(false);
thissetTitle("记事本");
jmbadd(jm1);//文件
jm1setMnemonic('f');
jm1addActionListener(this);
jmbadd(jm2);//编辑
jm2setMnemonic('e');
jmbadd(jm4);//格式
jm4setMnemonic('o');
jm4addActionListener(this);
jmbadd(jm5);
jm5setMnemonic('v'); //查看
jmbadd(jm3);//帮助
jm3setMnemonic('h');
jmbsetLocation(0,0);
jm1add(jmi1);
jmi1addActionListener(this);//新建
jmi1setAccelerator(KeyStrokegetKeyStroke('N',EventCTRL_MASK,false));
jm1addSeparator();
jm1add(jmi2);
jmi2setAccelerator(KeyStrokegetKeyStroke('O',EventCTRL_MASK,false));
jmi2addActionListener(this);//打开
jm1addSeparator();
jm1add(jmi3);
jmi3setAccelerator(KeyStrokegetKeyStroke('S',EventCTRL_MASK,false));
jmi3addActionListener(this);//保存
jm1addSeparator();
jm1add(jmi4);
jmi1setMnemonic('n');
jmi2setMnemonic('o');
jmi3setMnemonic('s');
jmi4setMnemonic('x');
jmi4addActionListener(this);//退出
jm5add(jmi5); //删除
jm5addSeparator();
jmi5addActionListener(this);
jm4addSeparator();
jm4add(jmd4);
jm4add(jmd0);
jmd4add(jmdb1);
jmd4add(jmdb2);
jmd4add(jmdb3);
jmd4add(jmdb4);
jmd4add(jmdb5);
jmd4addActionListener(this); //添加监视器
jmdb1addActionListener(this);
jmdb2addActionListener(this);
jmdb3addActionListener(this);
jmdb4addActionListener(this);
jmdb5addActionListener(this);
jm5add(jmp1);
jm5addSeparator();
jm5add(jmp2);
jmp1addActionListener(this);//日期时间
jmp2addActionListener(this);//背景颜色
jm2add(aa);
jm2addSeparator();
jm2add(bb);
jm2addSeparator();
jm2add(cc);
jm2addSeparator();
jmd0add(jcuti1);
jmd0addSeparator();
jmd0add(jxieti1);
aasetMnemonic('C');
aasetAccelerator(KeyStrokegetKeyStroke(KeyEventVK_C,InputEventCTRL_MASK));
bbsetMnemonic('x');
bbsetAccelerator(KeyStrokegetKeyStroke(KeyEventVK_X,InputEventCTRL_MASK));
ccsetMnemonic('V');
ccsetAccelerator(KeyStrokegetKeyStroke(KeyEventVK_V,InputEventCTRL_MASK));
aaaddActionListener(this);//复制
bbaddActionListener(this);//剪切
ccaddActionListener(this);//粘贴
jmd4addActionListener(this);
jcuti1addItemListener(this);//粗体
jxieti1addItemListener(this);//斜体
jm3add(jmi7);
jmi7addActionListener(this);//关于自己
cadd(jToolBar,BorderLayoutCENTER); //工具条
jButton2setIcon(new ImageIcon("image\\newJPG"));//新建
jToolBaradd(jButton2);
jButton2setToolTipText("新建");
jButton2addActionListener(this);
jButton1setIcon(new ImageIcon("image\\openJPG"));//打开
jButton1setToolTipText("打开");
jToolBaradd(jButton1);
jButton1addActionListener(this);
jButton3setIcon(new ImageIcon("image\\saveJPG"));//保存
jToolBaradd(jButton3);
jButton3setToolTipText("保存");
jButton3addActionListener(this);
jButton4setIcon(new ImageIcon("image\\qqJPG"));
jButton4addActionListener(this); //退出
jToolBaradd(jButton4);
jButton4setToolTipText("退出");
cadd(jsp,BorderLayoutSOUTH);
thissetDefaultCloseOperation(JFrameDISPOSE_ON_CLOSE);
thissetSize(500,500);
thissetVisible(true);
jmdb1addActionListener(new ActionListener() //**
{ public void actionPerformed(ActionEvent e)
{ jtasetForeground(Coloryellow);
} } );
jmdb2addActionListener(new ActionListener() //红色
{ public void actionPerformed(ActionEvent e)
{ jtasetForeground(Colorred);
} } );
jmdb3addActionListener(new ActionListener() //绿色
{ public void actionPerformed(ActionEvent e)
{ jtasetForeground(Colorgreen);
} } );
jmdb4addActionListener(new ActionListener() //蓝色
{
public void actionPerformed(ActionEvent e)
{
jtasetForeground(Colorblue);
} } );
jmdb5addActionListener(new ActionListener() //黑色
{
public void actionPerformed(ActionEvent e)
{
jtasetForeground(Colorblack);
} } );
}
public void actionPerformed(ActionEvent e)
{ if(egetSource()==jmi1)//新建
{jtasetText("");
thissetTitle("无标题 - 记事本");
}
if(egetSource()==jmi2)//打开
{File f1;
JFileChooser jfc1 = new JFileChooser();
int num1 = jfc1showOpenDialog(this);
if(num1==JFileChooserAPPROVE_OPTION)
{ try {
f1 = jfc1getSelectedFile();
thissetTitle(f1getName());
FileReader fr = new FileReader(f1);
BufferedReader br = new BufferedReader(fr);
String str;
while((str = brreadLine())!=null)
{jtasetText(str);}
frclose();
brclose(); }
catch(FileNotFoundException e1)
{e1printStackTrace();}
catch(IOException e2){e2printStackTrace();}
}}
if(egetSource()==jmi3)//保存
{File f2 = null;
JFileChooser jfc2 = new JFileChooser();
int num2 = jfc2showSaveDialog(this);
if(num2==JFileChooserAPPROVE_OPTION){
f2=jfc2getSelectedFile();
thissetTitle(f2getName());
try{
FileWriter fw = new FileWriter(f2);
BufferedWriter bw = new BufferedWriter(fw);
bwwrite(jtagetText());
bwclose();
fwclose();
}catch(IOException e2){
e2printStackTrace();
}}}
if(egetSource()==jmi4)//退出
{
int a = JOptionPaneshowConfirmDialog(this,"文件已被改变,是否要保存?","提示",JOptionPaneYES_NO_CANCEL_OPTION);
if(a==1){
thisdispose();
}else if(a==0){
File f2 = null;
JFileChooser jfc2 = new JFileChooser();
int num2 = jfc2showSaveDialog(this);
if(num2==JFileChooserAPPROVE_OPTION){
f2=jfc2getSelectedFile();
thissetTitle(f2getName());
try{
FileWriter fw = new FileWriter(f2);
BufferedWriter bw = new BufferedWriter(fw);
bwwrite(jtagetText());
bwclose();
fwclose();
}catch(IOException e2){
e2printStackTrace();
}
thisdispose();
}}}
if(egetSource()==jmp1)//日期时间
{
Calendar c1 =CalendargetInstance();
int y = c1get(CalendarYEAR);
int m = c1get(CalendarMONTH);
int d = c1get(CalendarDATE);
int h = c1get(CalendarHOUR);
int m1 = c1get(CalendarMINUTE);
int m2 = m+1;
jtasetText(y+"年"+m2+"月"+d+"日"+h+":"+m1);
}
if(egetSource()==jmp2)//背景色
{ Color ccc = JColorChoosershowDialog(this,"color",ColorBLACK);
jtasetSelectedTextColor(ccc);
jtasetBackground(ccc);
}
if(egetSource()==jButton1)//打开
{File f1;
JFileChooser jfc1 = new JFileChooser();
int num1 = jfc1showOpenDialog(this);
if(num1==JFileChooserAPPROVE_OPTION)
{
try
{
f1 = jfc1getSelectedFile();
thissetTitle(f1getName());
FileReader fr = new FileReader(f1);
BufferedReader br = new BufferedReader(fr);
String str;
while((str = brreadLine())!=null)
{jtasetText(str);}
frclose();
brclose(); }
catch(FileNotFoundException e1)
{e1printStackTrace();}
catch(IOException e2){e2printStackTrace();}
} }
if(egetSource()==jButton2)
{jtasetText("");
thissetTitle("文本编辑器");
}
if(egetSource()==jmi5){
jtareplaceRange("",jtagetSelectionStart(),jtagetSelectionEnd()); //删除
}
if(egetSource()==jButton3)
{File f2 = null;
JFileChooser jfc2 = new JFileChooser();
int num2 = jfc2showSaveDialog(this);
if(num2==JFileChooserAPPROVE_OPTION){
f2=jfc2getSelectedFile();
thissetTitle(f2getName());
try{
FileWriter fw = new FileWriter(f2);
BufferedWriter bw = new BufferedWriter(fw);
bwwrite(jtagetText());
bwclose();
fwclose();
}catch(IOException e2){
e2printStackTrace();
}}}
if(egetSource()==aa) //复制
{jtacopy();}
else if(egetSource()==bb)//剪切
{ jtacut(); }
else if(egetSource()==cc)//粘贴
{jtapaste();}
if(egetSource()==jButton4)
{int a = JOptionPaneshowConfirmDialog(this,"文件已被改变,是否要保存?","提示",JOptionPaneYES_NO_CANCEL_OPTION);
if(a==1){
thisdispose();
}else if(a==0){
File f2 = null;
JFileChooser jfc2 = new JFileChooser();
int num2 = jfc2showSaveDialog(this);
if(num2==JFileChooserAPPROVE_OPTION){
f2=jfc2getSelectedFile();
thissetTitle(f2getName());
try{
FileWriter fw = new FileWriter(f2);
BufferedWriter bw = new BufferedWriter(fw);
bwwrite(jtagetText());
bwclose();
fwclose();
}catch(IOException e2){
e2printStackTrace();
}
thisdispose();
}}}
//if(egetSource()==jmi7)//关于我
//{About1 a=new About1();//实现跳转
// asetVisible(true);
//}
}
public void itemStateChanged(ItemEvent e) //字体
{Font c=new Font("Serif",FontPLAIN,14);
if(egetItemSelectable()==jcuti1)
{if(jcuti1getState()==true)
{ Font f=new Font("Serif",FontBOLD,20); //粗体
jtasetFont(f);}
else{jtasetFont(c);}
}
else if(egetItemSelectable()==jxieti1)
{if(jxieti1getState()==true)
{ Font b=new Font("Serif",FontITALIC,20);//斜体
jtasetFont(b);}
else{jtasetFont(c);
} } }
public static void main(String[] args)//入口
{ new NoteBook(); }
public void windowOpened(WindowEvent arg0) {}
public void windowClosing(WindowEvent arg0) {
int a = JOptionPaneshowConfirmDialog(this,"文件已被改变,是否要保存?","提示",JOptionPaneYES_NO_CANCEL_OPTION);
if(a==1){
thisdispose();
}else if(a==0){
File f2 = null;
JFileChooser jfc2 = new JFileChooser();
int num2 = jfc2showSaveDialog(this);
if(num2==JFileChooserAPPROVE_OPTION){
f2=jfc2getSelectedFile();
thissetTitle(f2getName());
try{
FileWriter fw = new FileWriter(f2);
BufferedWriter bw = new BufferedWriter(fw);
bwwrite(jtagetText());
bwclose();
fwclose();
}catch(IOException e2){
e2printStackTrace();
}
}
if(a==2){}
}
}
public void windowClosed(WindowEvent arg0) {}
public void windowIconified(WindowEvent arg0) {}
public void windowDeiconified(WindowEvent arg0) {}
public void windowActivated(WindowEvent arg0) {}
public void windowDeactivated(WindowEvent arg0) {}
public void mouseClicked(MouseEvent arg0) {}
public void mousePressed(MouseEvent arg0) {}
public void mouseReleased(MouseEvent arg0) {}
public void mouseEntered(MouseEvent arg0) {}
public void mouseExited(MouseEvent arg0) {}
}
#include<stdioh>
#include<malloch>
#include<stringh>
#include<stdlibh>
#include<ctypeh>
#define NULL 0
#define MAX 100
typedef struct lnode{
char date[MAX]; //存放数据
struct lnode prior ; //前驱
struct lnode next ; //后继
int number ; //记录一个节点的字符数!如果是头节点就记录他的节点个数
int quese ; //记录节点在链表中的位置
}lnodetype;
lnodetype l ; //设置两个全局变量,分别是头节点指针和尾节点指针
lnodetype end ;
//这个函数是用来初始化的//
int iniatelist (lnodetype l , lnodetype end)
{
(l) = (lnodetype )malloc (sizeof (lnodetype) ) ;
if ( (l) == NULL )
{
printf ("没有只够的内存空间!程序即将退出!");
return 0 ;
}
(l)->prior =(l)->next = NULL ; //这是双链表
(l)->number = (l)->quese = 0;
(end) = (l) ;
printf ("程序初始化完毕!");
return 0;
}
//这个函数是用来建立节点,并且插入元素的//
int link(lnodetype l, lnodetype end)
{
lnodetype s ;
s = (lnodetype )malloc ( sizeof (lnodetype) ) ;
if ( s == NULL ){
printf ("内存空间不够,程序即将退出!") ;
return 0 ;
}
(end)->next = s ;
s->prior = (end) ;
(end) = (end)->next ;
(l)->number++ ; //增加一个节点,头节点的number就加1
s->quese = (l)->number ; //这个是记录节点在链表中的位置
printf ("%d行", s->quese ) ; //这个是节点在整个链表中的位置
gets(s->date) ;
s -> number = strlen(s->date) ;
return 0 ;
}
//这个是打印链表的函数//
int prin (lnodetype l, lnodetype end)
{
lnodetype p ;
int i ;
int j = 0;
int couter = (l)->number ;
p = (l)->next ;
for (i=0; i < couter; i++){
printf ( "%d行" , i+1 ) ;
j = 0;
while ( ( p->date[j]>='a' && p->date[j]<='z') ||
(p->date[j]>='A' && p->date[j]<='z') ||
p->date[j]>='0' && p->date[j]<='9')
{
printf ( "%c" , p->date[j] ) ;
j++ ;
}
printf ("n") ;
p = p->next ;
}
return 0 ;
}
//这个查找和编辑相应行的函数//
int search (lnodetype l, lnodetype end )
{
int number ;
scanf ("%d" , &number) ;
int i ;
lnodetype p ;
p = (l)->next ;
for ( i=0; i<number-1; i++ )
p = p->next ;
printf ("%d行" , number ) ;
gets (p->date) ;
return 0 ;
}
//这个是在文本文件里搜索字符串的函数//
int searchstr(lnodetype l , lnodetype end)
{
char ptr[100] ;
int arrycouter ;
int mystrcmp( char , char , int ) ;
printf ( "ok!现在输入你查找的字符串!" ) ;
scanf ( "%s" , ptr ) ;
arrycouter = strlen (ptr) ;
lnodetype s ;
s = (l)->next ;
char p ;
int i = 1 ;
int couter = 0 ;
int number = (l)->number ;
p = (char )s->date ;
while ( i && number ){
// i=1是,证明没有找到,向第二个节点继续寻找
while ( i && ( ( (p >= 'a') && (p <= 'z') ) || ( (p >= 'A') && (p <= 'Z') ) ) ){
i = mystrcmp ( p , ptr , arrycouter );
if ( i == 1 ){
printf ("字符串已经在第%d行,第%d个字符开始,",s->quese, couter+1 );
i = 0 ;
}
else
{
p++ ;
couter++;
i = 1 ;
}
}
s = s->next ;
p = (char )s->date ;
number -- ;
}
if ( i == 1 )
printf ("字符串在本文档中不存在!");
return 0 ;
}
//(1)这个函数是用来实现退出不保存功能的//
int exitunsave(lnodetype l, lnodetype end)
{
lnodetype s ;
while( (l) != (end) ){ //如果不保存的话,最好是把节点的空间都释放,节省空间
s = (end) ;
(end) = (end)->prior ;
free( s ) ;
}
return 0 ;
}
//(2)这个函数是用来实现退出但保存功能的//
int quitandsave( lnodetype l , lnodetype end )
{
FILE fp ;
char ch ;
char filename[20] ;
lnodetype p;
int i ;
int j ;
int couter = (l)->number ;
p = (l)->next ;
printf ("请输入文件名:") ;
scanf ("%s" , filename ) ;
if ( (fp = fopen( filename , "w" )) == NULL ){
printf ("文件不能打开!n");
return 0 ;
}
for ( i=0; i<couter; i++ ){ //有几个节点就进行多少次的存贮
ch = p->date[0] ;
j = 1 ;
while (ch != '\0'){
fputc (ch , fp) ;
ch = p->date[j] ;
j++ ;
}
p = p->next ;
fputc ( '#' , fp ) ; //注意在每个节点的后面加上结束的符号
}
fputc ( '@' , fp ) ; //整个文件关闭的标志
fclose ( fp ) ; //注意关闭文件,
return 0 ;
}
//由于库函数比较字符串提供的功能不满足要求,故自己写了一个/
int mystrcmp( char p ,char sour ,int number )
{
while ( number && (p) == (sour) &&
( ( (p >= 'a') && (p <= 'z') ) || ( (p >= 'A') && (p <= 'Z') ) )){
p++ ;
sour++ ;
number-- ;
}
if ( number == 0 )
return 1 ;
else
return 0 ;
}
//这个函数是用来实现统计字符串功能的//
int coutword(lnodetype l , lnodetype end)
{ //考虑到只统计一行的单词没有意义,故统计整个文本
int yes = 1 ; //这个是进入单词的标志
int no = 0 ; //在单词外面的时候的标志
int i , j ,inaword ,count = 0 ;
inaword = no ;
lnodetype s = (l)->next ;
for (j=0; j<(l)->number; j++){
for ( i=0; (s->date[i]>='a' && s->date[i]<='z') ||
(s->date[i]>='A' && s->date[i]<='z') ||
(s->date[i]>='0' && s->date[i]<='9' ) ||
(s->date[i]==' '); i++ )
{
if ( s->date[i] == ' ' )
inaword = no ;
else
if ( inaword == no )
{
inaword = yes ;
count++ ; //计算单词
}
}
s = s->next ;
inaword = 0 ; //注意这里,把标志置为0了!
}
printf ( "n文本一共有 %d 行" , (l)->number ) ;
printf ("n此文本一共有 %d 个单词!" , count ) ;
return count ;
}
//这个函数是用来实现计算文本行数功能的//
int linecouter(lnodetype l , lnodetype end )
{
int couter ;
couter = (l)->number ;
return couter ;
}
//这个函数是整和一上所有功能的菜单函数//
int editmenu(lnodetype l , lnodetype end )
{
char choice ;
char p = "cls" ;
int i = 1 ; //这两个变量是用来控制循环的
int j= 1 ;
system (p) ;
prin (&(l) , &(end)) ;
while (j){
printf (" e: 编辑相应行 n") ;
printf (" s: 搜索字符串 n") ;
printf (" t: 统计单词个数 n") ;
printf (" q: 退出编辑 n") ;
scanf("%c",&choice);
scanf("%c" , &choice) ; //????莫名其妙的问题,非要两个请求输入语句才肯停下来!
switch (choice)
{
case 'e' : {
i = 1 ;
while (i)
{
search( &(l) , &(end) );
system (p) ;
prin( &(l) , &(end) ) ;
printf ("n1 继续编辑 0 结束编辑n") ;
scanf ("%d" , &i) ;
}
}
break;
case 's' : {
i = 1 ;
while (i)
{
searchstr( &(l) , &(end) );
getchar();
getchar();
system (p) ;
prin( &(l) , &(end) ) ;
printf ("n1 继续搜索 0 结束搜索n") ;
scanf ("%d" , &i) ;
}
}
break;
case 't' : {
coutword ( &(l) , &(end) ) ;
getchar() ;
}break;
default : return 0 ;
}
system (p) ;
prin( &(l) , &(end) ) ;
printf ("n1 回到编辑菜单 0 结束编辑n") ;
scanf ("%d" , &j) ;
if (j == 1)
system (p) ;
else
return 0 ;
}
return 0 ;
}
//实现第一个模块:新建空白文档//
int newtext( lnodetype l ,lnodetype end )
{
printf ( "新文本文件:n" ) ;
int i = 1 ;
char judstr[MAX] ;
lnodetype temp ;
char jud ;
char p = "cls" ;
while ( 1 ){
link( &(l) , &(end) ) ;
jud = (end)->date[0] ;
if ( jud == '5' ){ //输入‘5’结束一切
temp = (end) ;
(end) = (end)->prior ;
free (temp) ;
while (1){
printf ( " out :退出不保存 n") ;
printf ( " edit :编辑信息 n") ;
printf ( " quit :退出而不存盘 n") ;
printf ( " qas :退出且存盘 n") ;
printf ( " con :继续输入! n") ;
gets(judstr) ;
if ( !strcmp(judstr , "out") )
{
exitunsave( &(l) , &(end) ) ;
return 0 ;
}
else
if ( !strcmp(judstr , "qas") )
{
quitandsave( &(l) , &(end) ) ;
return 0 ;
}
else
if ( !strcmp(judstr , "edit") )
{
editmenu (l , end) ;
return 0;
}
system (p) ;
}
return 0 ;
}
}
return 0 ;
}
//这个是装入文件的函数//
int loadtaxt( char filename )
{
FILE fp ;
lnodetype l ;
char ch ;
int i = 0 ;
char p = "cls" ;
char judstr[MAX] ;
lnodetype head ;
lnodetype end ;
iniatelist ( &head , &end) ;
l = end = head ;
if ( (fp = fopen( filename, "r+")) == NULL ){
printf ("文件不能打开!n") ;
return 0 ;
}
ch = fgetc ( fp ) ;
while ( ch != '@' ){
lnodetype s ;
s = (lnodetype )malloc ( sizeof (lnodetype) ) ;
if ( s == NULL ){
printf ("内存空间不够,程序即将退出!") ;
return 0 ;
}
end->next = s ;
s->prior = end ;
end = end->next ;
l->number++ ;
s->quese = l->number ;
printf ("%d行", s->quese ) ;
while ( ch != '#'){
s->date[i] = ch ;
ch = fgetc (fp) ;
i++ ;
}
i = 0;
while ( (end->date[i]>='a' && end->date[i]<='z') ||
(end->date[i]>='A' && end->date[i]<='z') ||
(end->date[i]>='0' && end->date[i]<='9' ) ||
(end->date[i]==' ') )
{
printf ( "%c" , end->date[i] ) ;
i++ ;
}
end->date[i] = '\0' ; //注意在节点的最好加上这个,以让退出保存功能函数知道此节点已结束
printf ( "n" ) ;
i = 0;
ch = fgetc ( fp ) ;
}
fclose (fp) ;
printf ("n文件成功装入!n") ;
while (1){
printf ( " out :退出不保存 n") ;
printf ( " edit :编辑信息 n") ;
printf ( " qas :退出且存盘 n") ;
printf ( " con :继续输入! n") ;
scanf("%s",judstr);
if ( !strcmp(judstr , "out") )
{
exitunsave( &l , &end ) ;
return 0 ;
}
else
if ( !strcmp(judstr , "qas") )
{
quitandsave( &l , &end ) ;
return 0 ;
}
else
if ( !strcmp(judstr , "edit") )
{
editmenu (&l , &end) ;
return 0 ;
}
system (p) ;
}
return 0 ;
}
//主函数//
void main ( void )
{
//iniatelist (&l , &end) ;
//newtext(&l , &end) ;
char filename[MAX] ;
scanf ( "%s" , filename ) ;
loadtaxt( filename ) ;
}
使用记事本编写Java程序需要遵循以下步骤:
1 打开记事本软件;
2 在空白文件中输入Java代码;
3 保存文件时,选择“所有文件”类型,并将文件后缀名改为“java”;
4 打开命令行窗口,切换至程序所在目录;
5 使用Javac编译器编译该Java程序;
6 若编译成功,使用Java虚拟机运行该程序。
下面简单介绍这些步骤的具体 *** 作:
1 打开记事本软件:点击开始菜单,在“所有程序”中找到“附件”文件夹,然后单击“记事本”。
2 输入Java代码:根据自己的需要,输入相应的Java代码。例如,可以尝试输入以下代码:
public class HelloWorld {
public static void main(String[] args) {
Systemoutprintln(Hello, world!);
}
}
上述代码是经典的Java程序,其功能是在控制台窗口输出“Hello, world!”字符串。
3 保存文件:在记事本软件中,选择“文件”->“另存为”,然后在d出的“另存为”对话框中,选中“所有文件”类型,并将文件名改为“HelloWorldjava”。注意,Java程序的文件名必须与公共类的类名相同。
4 打开命令行窗口:点击开始菜单,在“所有程序”中找到“附件”文件夹,然后单击“命令提示符”。
5 切换至程序所在目录:在命令行窗口中,使用cd命令切换至Java程序所在的目录。
6 编译Java程序:在命令行窗口中,输入以下命令:
javac HelloWorldjava
上述命令会使用Javac编译器编译HelloWorldjava文件。若编译成功,则会在当前目录下生成一个名为“HelloWorldclass”的字节码文件。
7 运行Java程序:在命令行窗口中,输入以下命令:
java HelloWorld
上述命令会使用Java虚拟机运行HelloWorldclass文件。程序将在控制台窗口中输出“Hello, world!”字符串。
以上就是使用记事本编写Java程序的基本步骤。记住,在编写Java程序时,要注意语法和缩进等细节问题。
以上就是关于编写任意内容到记事本怎么做全部的内容,包括:编写任意内容到记事本怎么做、用JAVA编写一个GUI记事本程序,实现文本的输入,保存,修改,打开 *** 作、C++ 关于记事本的简单程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)