❶ C语言编写的记事本源代码
#include<stdio.h>
#include<malloc.h>
#include<string.h>
#include<stdlib.h>
#include<ctype.h>
#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 ) ;
}
很不容易做的程序!!!
通过编译
❷ 有谁有简单的网络记事本源代码
你好
你可以试试下载这个页面下来再用Dreamweaver MX打开就可以得到这个网页了
❸ 谁有记事本的源码
用VB做一个记事本实在不很复杂,我们完全可以通过向导来很方便地做出来。但本文只打算讨论用手动方法制作记事本,旨在向VB初学者展示:学VB原来是如此容易! 通过阅读、研究本文并按本文所述进行尝试,初学者将学到很多东西,如怎样使用RichText控件来打开和保存文件,怎样制作菜单、工具栏和状态栏以及如何对其编写代码等。 第一章 让我们的记事本马上运行 急于求成是初学者共有的心愿。那好,请按如下三个步骤做,我们的愿望立即就可以实现! 步骤一:绘制界面。 新建一个标准EXE工程,将其Caption属性改为“超级记事本”,点击Icon属性给它找个合适的Icon图标。单击菜单“工程”-“部件”,在弹出的“部件”对话框里找到Microsoft RichText Box 6.0和公共对话框Microsoft Common Dialog 6.0并选中它们,单击“确定”按钮。这时左边的工具栏上出现了我们刚才新添的两个控件了。在窗体上绘制RichText Box和Commn Dialog,其中RichText Box的大小和位置可不用理睬,我们将在代码中处理它,当然,有必要把它的ScrollBar属性设为2-rtfVertical,这样在打开和编辑文件时垂直滚动条才可用。 步骤二:编辑菜单。 按Ctrl+E调出菜单编辑器,我们来做如下几个菜单: 一.文件菜单: 文件(第一层) mnuFile 新建(第二层) mnuNew 打开(第二层) mnuOpen 保存(第二层) mnuSave - (第二层) mnuFileSep (分隔线) 退出(第二层) mnuExit 二.编辑菜单: 编辑(第一层) mnuEdit 复制(第二层) mnuCopy 剪切(第二层) mnuCut 粘贴(第二层) mnuPaste - (第二层) mnuEditSep (分隔线) 全选(第二层) mnuSelecAll 三.搜索菜单: 搜索(第一层) mnuSearch 查找(第二层) mnuFind 查找下一个(第二层) mnuFindOn 四.帮助菜单: 帮助(第一层) mnuHelp 使用说明(第二层) mnuUsage 关于(第二层) mnuAbout (注:各菜单项的快捷键请自行设置) 好了,其它的菜单项以后再根据需要添加。现在进入: 步骤三:编写代码。 '声明查找变量 Dim sFind As String '声明文件类型 Dim FileType, FiType As String '初始化程序 Private Sub Form_Load() '设置程序启动时的大小 Me.Height = 6000 Me.Width = 9000 End Sub '设置编辑框的位置和大小 Private Sub Form_Resize() On Error Resume Next '出错处理 RichTextBox1.Top=20 RichTextBox1.Left=20 RichTextBox1.Height = ScaleHeight-40 RichTextBox1.Width = ScaleWidth-40 End Sub '新建文件 Private Sub mnuNew_Click() RichTextBox1.Text = "" '清空文本框 FileName = "未命名" Me.Caption = FileName End Sub '打开文件 Private Sub mnuOpen_Click() CommonDialog1.Filter = "文本文档(*.txt)|*.txt|RTF文档(*.rtf)|*.rtf|所有文件(*.*)|*.*" CommonDialog1.ShowOpen RichTextBox1.Text = "" '清空文本框 FileName = CommonDialog1.FileName RichTextBox1.LoadFile FileName Me.Caption = "超级记事本:" & FileName End Sub '保存文件 Private Sub mnuSave_Click() CommonDialog1.Filter = "文本文档(*.txt)|*.txt|RTF文档(*.rtf)|*.rtf|所有文件(*.*)|*.*" CommonDialog1.ShowSave FileType = CommonDialog1.FileTitle FiType = LCase(Right(FileType, 3)) FileName = CommonDialog1.FileName Select Case FiType Case "txt" RichTextBox1.SaveFile FileName, rtfText Case "rtf" RichTextBox1.SaveFile FileName, rtfRTF Case "*.*" RichTextBox1.SaveFile FileName End Select Me.Caption = "超级记事本:" & FileName End Sub '退出 Private Sub mnuExit_Click() End End Sub '复制 Private Sub mnuCopy_Click() Clipboard.Clear Clipboard.SetText RichTextBox1.SelText End Sub '剪切 Private Sub mnuCut_Click() Clipboard.Clear Clipboard.SetText RichTextBox1.SelText RichTextBox1.SelText = "" End Sub '全选 Private Sub mnuSelectAll_Click() RichTextBox1.SelStart = 0 RichTextBox1.SelLength = Len(RichTextBox1.Text) End Sub '粘贴 Private Sub mnuPaste_Click() RichTextBox1.SelText = Clipboard.GetText End Sub '查找 Private Sub mnuFind_Click() sFind = InputBox("请输入要查找的字、词:", "查找内容", sFind) RichTextBox1.Find sFind End Sub '继续查找 Private Sub mnuFindOn_Click() RichTextBox1.SelStart = RichTextBox1.SelStart + RichTextBox1.SelLength + 1 RichTextBox1.Find sFind, , Len(RichTextBox1) End Sub '使用说明 Private Sub mnuReadme_Click() On Error GoTo handler RichTextBox1.LoadFile "Readme.txt", rtfText '请写好Readme.txt文件并存入程序所在文件夹中 Me.Caption = "超级记事本:" & "使用说明" Exit Sub handler: MsgBox "使用说明文档可能已经被移除,请与作者联系。", vbOKOnly, " 错误信息" End Sub '关于 Private Sub mnuAbout_Click() MsgBox "超级记事本 Ver1.0 版权所有(C) 2001 土人",vbOKOnly,"关于" End Sub '设置弹出式菜单(即在编辑框中单击鼠标右键时弹出的动态菜单) Private Sub RichTextBox1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = 2 Then PopupMenu mnuEdit, vbPopupMenuLeftAlign Else Exit Sub End If End Sub '防止在切换输入法时字体自变(感谢王必成先生提供此方案) Private Sub RichTextBox1_KeyUp(KeyCode As Integer, Shift As Integer) If KeyCode = vbKeySpace Then RichTextBox1.SelFontName = CommonDialog1.FontName End If End Sub 至此,我们的记事本可以编译使用了。点击菜单“文件”-“生成XXX.EXE”,回到桌面运行我们的记事本看看,是不是颇有成就感? 当然,这样的记事本还比较粗糙,我们还需要做些工作,请看下一章。 第二章 美化程序界面 多数字处理软件都有工具栏和状态栏。工具栏和状态栏除了能美化我们的程序使其更具有专业性质外,还给用户带来操作上的便利。现在我们就来做一做这两样东西。 一.工具栏 (一)制作工具栏 单击“工程”-“部件”,选中Microsoft Windows Common Control 6.0并确定。这时,我们要用到的控件就出现在左边的工具栏上了。 要做工具栏,首先需要一个叫ImageList的控件来装载图像。在程序界面上添加它,然后右键单击此控件,左键单击“属性”,弹出“属性页”对话框的“图像”,再单击“插入图片”就可以一次性装载图片了(如不满意,以后还可以添加)。图片可在C:\Microsoft Visual Studio\Common\Graphics\Bitmaps\TlBr_W95下选择(这里假设你的VB安装在C盘下)。注意了:在插入图片时给每一张图片注明关键字,以便在引用图片时不至于混乱。如插入“新建”的图片,我们在“关键字”栏注明“New”。 图片有了,接下来在程序界面添加工具栏(ToolBar)。添加后工具栏就出现在菜单下面,右键单击它,选择“属性”,在弹出的“属性页”对话框中的“通用”项作些设置,主要如下两项: 1.“图像列表”:选择ImageList1 2.“样式”:根据喜爱选择1-trbStandard或者2-trbFlat 继续点击“属性页”的“按钮”选项,插入若干按钮。按钮有多种样式,请根据需要设置。这里请一定注意:每一个与用户操作有关的按钮都必须注明关键字、装载图片,如“新建”按钮,在“关键字”项注明“新建”,在“图像”项键入“New”(即ImageList1中的图片关键字),需要的话还可以在“工具提示文本”项填入适当的提示语。 (二)编写工具栏的按钮代码 工具栏按钮的代码编辑很简单,可以按照下面的格式去编写: Private Sub ToolBar1_ButtonClick(ByVal Button As MSComctlLib.Button) On Error Resume Next '出错处理 Select Case Button.Key '按关键字选择 Case "新建" mnuNew_Click '等于菜单项“新建”被单击 Case "打开" '等于菜单项“打开”被单击 mnuOpen_Click '......(继续编写其它按钮的代码) End Select End Sub 完成后试运行一下我们的程序,我们发现,有了工具栏之后,程序变得漂亮多了,只是有一个问题:打开一个较长的文档后,编辑框的下拉滚动条向上的箭头不见了。原因是:工具条占用一定的空间。解决方法:将“设置编辑框的位置和大小”中的RichTextBox1.Top = 20 和 RichTextBox1.Height = Me.ScaleHeight - 40分别改为RichTextBox1.Top = 380,RichTextBox1.Height = Me.ScaleHeight - 400即可。 二.状态栏 (一)制作状态栏 状态栏的英文名字叫StatusBar,在窗体上添加它后会默认出现在窗体的最下方。用鼠标右键点击它,调出“属性页”对话框,单击“窗格”项,插入一些窗格,可以将各个窗格的“样式”设置为: 0-sbrText 显示文本,需编写代码 1-sbrCaps 显示大小写状态,无需编程 2-sbrNum 显示NumLock键开关状态,无需编程 3-sbrIns 显示Insert键状态,无需编程 4-sbrScr1 5-sbrTime 显示时间,不编程时时间不会随系统时钟变化 6-sbrDate 显示日期,无需编程 注意:加进状态栏后需将Form_Resze中的RichTextBox1.Height = Me.ScaleHeight - 400改为RichTextBox1.Height = Me.ScaleHeight - 600。 (二)状态栏根据其“样式”属性决定用不用编写代码(如上文所述)。下面举些例子,读者可以认真揣摩,从而达到举一反三的效果。 例一:用户选取了“新建”后,让第一个窗格显示:“目前状态:正在打开文件《……》”。请将下面代码写进“打开”菜单里面: StatusBar1.Panels(1).Text = "目前状态:正在打开文件" & "《" &CommonDialog1.FileTitle & "》" 例二:让第三个窗格显示时间并让时间跟随系统时钟变化。 首先,给程序加一个Timer控件,将其Interval属性设为1000。然后: 在Form_Load过程加入:StatusBar1.Panels(1).Text = Time;然后给Timer控件编写代码: Private Sub Timer1_Timer() If StatusBar1.Panels(3).Text <> CStr(Time) Then StatusBar1.Panels(3).Text = Time End If End Sub 例三:当编辑框的文本发生变化时让第一个窗格显示:“正在编辑文档:文件名”。 Private Sub RichTextBox1_Chang() StatusBar1.Panels(1).Text = "正在编辑文档:" & CommonDialog1.FileName End Sub 辛苦了那么久,我们现在已经拥有一个象模象样的记事本了。这个记事本由于用了RichText控件,理论上它能打开和编辑任意大的文档,使用起来的确比Windows自带的记事本方便得多。当然,还有一些其它的功能需要添加和完善,这就靠你慢慢去完成了。 回答完毕! 转来的,不过很详细....
❹ 求网页代码,一个简单的记事本代码。
java">importjava.awt.*;
importjava.awt.event.*;
importjava.io.*;
importjavax.swing.*;
{
privateJFrameframe=newJFrame("新记事本");
privateJTextAreajta=newJTextArea();
privateStringresult="";
privatebooleanflag=true;
privateFilef;
privateJButtonjb=newJButton("开始");
privateJTextFieldjtf=newJTextField(15);
privateJTextFieldjt=newJTextField(15);
privateJButtonjbt=newJButton("替换为");
privateJButtonjba=newJButton("全部替换");
privateIconic=newImageIcon("D:\java课堂笔记\GUI\11.gif");
privateStringvalue;
privateintstart=0;
privateJFramejf=newJFrame("查找");
privateJFramejfc=newJFrame("替换");
@Override
publicvoidactionPerformed(ActionEvente){
Stringcomm=e.getActionCommand();
if("新建".equals(comm)){
if(!(frame.getTitle().equals("新记事本"))){
if(!flag){
write();
newNew();
}else{
JFileChooserjfc=newJFileChooser("D:\java课堂笔记");
intreturnVal=jfc.showDialog(null,"保存为");
if(returnVal==JFileChooser.APPROVE_OPTION){//选择文件后再执行下面的语句,保证了程序的健壮性
f=jfc.getSelectedFile();
flag=false;
write();
}
}
}elseif(!(jta.getText().isEmpty())){
JFileChooserjfc=newJFileChooser("D:\java课堂笔记");
intreturnVal=jfc.showDialog(null,"保存为");
if(returnVal==JFileChooser.APPROVE_OPTION){//选择文件后再执行下面的语句,保证了程序的健壮性
f=jfc.getSelectedFile();
flag=false;
write();
newNew();
}
}else{
newNew();
}
}elseif("打开".equals(comm)){
JFileChooserjfc=newJFileChooser("D:\java课堂笔记");
jfc.setDialogType(JFileChooser.OPEN_DIALOG);
intreturnVal=jfc.showOpenDialog(null);
if(returnVal==JFileChooser.APPROVE_OPTION){//选择文件后再执行下面的语句,保证了程序的健壮性
f=jfc.getSelectedFile();
frame.setTitle(f.getName());
result=read()();
flag=false;
value=result;
jta.setText(result);
}
}elseif("保存".equals(comm)){
JFileChooserjfc=newJFileChooser("D:\java课堂笔记");
if(flag){
intreturnVal=jfc.showDialog(null,"保存为");
if(returnVal==JFileChooser.APPROVE_OPTION){//选择文件后再执行下面的语句,保证了程序的健壮性
f=jfc.getSelectedFile();
flag=false;
write();
}
}else{
write();
}
}elseif("另存".equals(comm)){
JFileChooserjfc=newJFileChooser("D:\java课堂笔记");
intreturnVal=jfc.showDialog(null,"另存");
if(returnVal==JFileChooser.APPROVE_OPTION){//选择文件后再执行下面的语句,保证了程序的健壮性
f=jfc.getSelectedFile();
write();
}
}elseif("退出".equals(comm)){
System.exit(0);
}elseif("撤销".equals(comm)){
jta.setText(value);
}elseif("剪切".equals(comm)){
value=jta.getText();
jta.cut();
}elseif("复制".equals(comm)){
jta.();
}elseif("粘贴".equals(comm)){
value=jta.getText();
jta.paste();
}elseif("删除".equals(comm)){
value=jta.getText();
jta.replaceSelection(null);
}elseif("全选".equals(comm)){
jta.selectAll();
}elseif("查找".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);
}elseif("替换".equals(comm)){
value=jta.getText();
GridLayoutgl=newGridLayout(3,3);
JLabeljl1=newJLabel("查找内容:");
JLabeljl2=newJLabel("替换为:");
jfc.setLayout(gl);
jfc.add(jl1);
jfc.add(jtf);
jfc.add(jb);
jfc.add(jl2);
jfc.add(jt);
jfc.add(jbt);
JLabeljl3=newJLabel();
JLabeljl4=newJLabel();
jfc.add(jl3);
jfc.add(jl4);
jfc.add(jba);
jfc.setLocation(300,300);
jfc.pack();
jfc.setVisible(true);
jfc.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}elseif("版本".equals(comm)){
JDialogjd=newJDialog(frame,"关于对话框");
jd.setSize(200,200);
JLabell=newJLabel("哈哈哈哈哈哈哈哈哈哈呵呵呵呵呵呵呵呵呵呵呵呵呵");
jd.add(l,BorderLayout.CENTER);
jd.setLocation(100,200);
jd.setSize(300,300);
jd.setVisible(true);
// jd.pack();
jd.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
}elseif("开始".equals(comm)||"下一个".equals(comm)){
Stringtemp=jtf.getText();
ints=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();
}
}elseif("替换为".equals(comm)){
Stringtemp=jtf.getText();
ints=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();
}
}elseif("全部替换".equals(comm)){
Stringtemp=jta.getText();
temp=temp.replaceAll(jtf.getText(),jt.getText());
jta.setText(temp);
}
}
publicStringread()(){
Stringtemp="";
try{
FileInputStreamfis=newFileInputStream(f.getAbsolutePath());
byte[]b=newbyte[1024];
while(true){
intnum=fis.read()(b);
if(num==-1)break;
temp=temp+newString(b,0,num);
}
fis.close();
}catch(Exceptione1){
e1.printStackTrace();
}
returntemp;
}
publicvoidwrite(){
try{
FileOutputStreamfos=newFileOutputStream(f);
fos.write(jta.getText().getBytes()());
fos.close();
}catch(Exceptione){
e.printStackTrace();
}
}
publicvoidnewNew(){
frame.dispose();
newMyNotepad();
flag=true;
}
publicMyNotepad(){
JMenuBarjmb=newJMenuBar();
String[]menuLab={"文件","编辑","帮助"};
String[][]menuItemLab={{"新建","打开","保存","另存","退出"},
{"撤销","剪切","复制","粘贴","删除","全选","查找","替换"},
{"版本"}};
for(inti=0;i<menuLab.length;i++){
JMenumenu=newJMenu(menuLab[i]);
jmb.add(menu);
for(intj=0;j<menuItemLab[i].length;j++){
JMenuItemjmi=newJMenuItem(menuItemLab[i][j]);
menu.add(jmi);
jmi.addActionListener(this);
}
}
frame.setJMenuBar(jmb);
jta.setLineWrap(true);//自动换行
JScrollPanejsp=newJScrollPane(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);
}
publicstaticvoidmain(String[]args){
newMyNotepad();
}
}
❺ 记事本程序的代码
那要你看保存的扩展名了
相应的则需要相应的语法
自己学习以下把
❻ 求代码(用记事本编写的html代码)
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>新建网页 1</title>
</head>
<body style="background-attachment: fixed">
<p><b><font size="5"><div style="background:yellow;">个人基金投资者投资情况调查问卷</div></font></b></p>
<p>(1)逆选择投资公募基金的主要原因是:()</p>
<form method="POST" action="--WEBBOT-SELF--">
<!--webbot bot="SaveResults" U-File="_private/form_results.csv" S-Format="TEXT/CSV" S-Label-Fields="TRUE" -->
<input type="radio" value="V1" checked name="R1">公墓运作管理规范。信息披露全面,可以方便地查找相关信息,申购,赎回等都很便利<br>
<input type="radio" name="R1" value="V2">公墓基金有比较强大的投研团队<br>
<input type="radio" name="R1" value="V3">公墓基金投资门槛较低,对投资者没有太多的的资质及投资金额要求<br>
<p>(2)你选择投资专户一对多基金的主要原因:()</p>
<input type="radio" name="R1" value="V4">专户一对多基金管理规范,同公墓基金一样有比较强大的投研团队,且投资范围,投资比例较自由<br>
<input type="radio" name="R1" value="V5">专户一对多相对于公墓基金有更强的针对性,可以更好的满足投资者要求<br>
<input type="radio" name="R1" value="V6">其它<br>
<p>(3)你希望获得哪方面的讯息?(多选题)</p>
<input type="checkbox" name="C1" value="ON">产品设计理念<br>
<input type="checkbox" name="C1" value="ON">投资思路<br>
<input type="checkbox" name="C1" value="ON">基金经理介绍<br>
<input type="checkbox" name="C1" value="ON">购买渠道<br>
<input type="checkbox" name="C2" value="ON">购买费率<br>
<p><b><font size="5"><div style="background:yellow;">如果你获得抽奖机会,请留下如下信息</div></font></b></p>
<p>姓名:<input type="text" name="T1" size="20"></p>
<p>手机:<input type="text" name="T2" size="20"></p>
<p>住址:<input type="text" name="T3" size="34"></p>
<p>建议:<textarea rows="7" name="S1" cols="51"></textarea></p>
<p><input type="submit" value="提交" name="B1"><input type="reset" value="重置" name="B2"></p>
</form>
<p></p>
</body>
</html>
❼ 记事本JAVA程序源代码
77030361
验证“网络知道” 我给你
❽ 跪求易语言记事本源码。
.版本 2
.支持库 iext2
.支持库 iext
.支持库 eAPI
.程序集 窗口程序集1
.程序集变量 文件路径, 文本型
.程序集变量 当前是否正在打字, 逻辑型
.子程序 _超级编辑框1_内容被改变, , , 更改超级编辑框的颜色
.局部变量 颜色, 字符格式
颜色.文本颜色 = 取颜色值 (取随机数 (0, 255), 取随机数 (0, 255), 取随机数 (0, 255))
超级编辑框1.置选择区字符格式 (颜色)
状态条1.置文本 (0, “行 ” + 到文本 (超级编辑框1.取行数 ()) + “ 文本长度 ” + 到文本 (超级编辑框1.取文本长度 ()))
.子程序 __启动窗口_创建完毕, , , 设置通用对话框
通用对话框1.过滤器 = “txt|*.txt”
通用对话框1.默认文件后缀 = “txt”
通用对话框1.标题 = “传说记事本保存对话框...”
_时间日期_被选择 ()
_炫银皮肤_被选择 ()
备忘录提醒 ()
.子程序 __启动窗口_位置被改变, , , 位置被改变后超级编辑框也跟着改变(按钮1也跟着改变)
.如果真 (_启动窗口.位置 = 3)
超级编辑框1.宽度 = 取屏幕宽度 () - 3
超级编辑框1.高度 = 取屏幕高度 () - 80 - 按钮1.高度 - 10
按钮1.顶边 = 取屏幕高度 () - 状态条1.高度 - 100
按钮1.宽度 = 取屏幕宽度 () - 5
按钮1.高度 = 状态条1.高度 + 10
.如果真结束
.如果真 (_启动窗口.位置 = 0)
超级编辑框1.宽度 = _启动窗口.宽度 - 10
超级编辑框1.高度 = _启动窗口.高度 - 55 - 按钮1.高度 - 10
按钮1.顶边 = 200
按钮1.宽度 = 560
.如果真结束
.子程序 _新建_被选择, , , New文件
.如果真 (超级编辑框1.内容 ≠ “”)
.如果真 (信息框 (“您还没保存!请问您要进行保存吗?”, 4, ) = #是钮)
通用对话框1.类型 = 1
通用对话框1.打开 ()
写到文件 (通用对话框1.文件名, 到字节集 (超级编辑框1.内容))
.如果真结束
.如果真结束
.子程序 _打开_被选择, , , Open文件
通用对话框1.类型 = 0
通用对话框1.打开 ()
.如果真 (通用对话框1.文件名 ≠ “”)
超级编辑框1.内容 = 到文本 (读入文件 (通用对话框1.文件名))
文件路径 = 通用对话框1.文件名
.如果真结束
.子程序 _保存_被选择, , , Save文件
.如果真 (文件路径 = “”)
通用对话框1.类型 = 1
通用对话框1.打开 ()
写到文件 (通用对话框1.文件名, 到字节集 (超级编辑框1.内容))
.如果真结束
.如果真 (文件路径 ≠ “”)
写到文件 (文件路径, 到字节集 (超级编辑框1.内容))
.如果真结束
.子程序 _保存到_被选择, , , Save As文件
通用对话框1.类型 = 1
通用对话框1.打开 ()
.如果真 (通用对话框1.文件名 ≠ “”)
写到文件 (通用对话框1.文件名, 到字节集 (超级编辑框1.内容))
.如果真结束
.子程序 _撤销_被选择, , , Undo 文本
超级编辑框1.撤消 ()
.子程序 _剪切_被选择, , , Cut 文本
超级编辑框1.剪切 ()
.子程序 _复制_被选择, , , Copy 文本
超级编辑框1.复制 ()
.子程序 _粘连_被选择, , , Paste文本
超级编辑框1.粘贴 ()
.子程序 _删除_被选择, , , Delete文本
超级编辑框1.删除 ()
超级编辑框1.内容 = 取文本左边 (超级编辑框1.内容, 取文本长度 (超级编辑框1.内容) - 1)
.子程序 _寻找_被选择, , , Find文本
载入 (Find窗口, , 真)
.子程序 _寻找下一个_被选择, , , 还没解决好
.子程序 _文本替换_被选择, , , 文本替换
载入 (文本替换窗口, , 真)
.子程序 _跳到_被选择, , , 还没解决好
载入 (跳到窗口, , 真)
.子程序 _全选_被选择, , , Select All文本
超级编辑框1.被选择字符数 = 取文本长度 (超级编辑框1.内容)
.子程序 _时间日期_被选择, , , Time-Date
.局部变量 小时, 文本型
.局部变量 分钟, 文本型
.局部变量 日期, 文本型
.局部变量 年份, 文本型
.局部变量 月份, 文本型
.局部变量 日份, 文本型
小时 = 到文本 (取小时 (取现行时间 ()))
分钟 = 到文本 (取分钟 (取现行时间 ()))
年份 = 到文本 (取年份 (取现行时间 ()))
月份 = 到文本 (取月份 (取现行时间 ()))
日份 = 到文本 (取日 (取现行时间 ()))
状态条1.置文本 (1, 小时 + “:” + 分钟 + “ ” + 年份 + “-” + 月份 + “-” + 日份)
.子程序 _传说记事本v13_被选择, , , About Notepad
信息框 (“软件作者:古老的传说” + #换行符 + “QQ:1041750677” + #换行符 + “MSN:[email protected]” + #换行符 + “编写工具:易语言” + #换行符 + “软件版本:1.3” + #换行符, 0, )
.子程序 _密码保管_被选择, , , Password Protect
载入 (密码窗口, , 真)
.子程序 _备忘录_被选择, , , 载入备忘录窗口
载入 (备忘录窗口, , 真)
.子程序 备忘录提醒, , , 备忘录提醒
.局部变量 分割文本, 文本型, , "0"
.局部变量 今天日期, 文本型
.局部变量 分割今天日期, 文本型, , "0"
分割文本 = 分割文本 (读配置项 (取运行目录 () + “\备忘录.ini”, “备忘录”, “提示日期”, ), “日”, )
今天日期 = 到文本 (取日期 (取现行时间 ()))
分割今天日期 = 分割文本 (今天日期, “日”, )
.如果真 (取数组成员数 (分割文本) = 1 或 取数组成员数 (分割文本) > 1)
.如果真 (分割文本 [1] = 分割今天日期 [1])
状态条1.置文本 (2, “您今天有一份备忘录噢^_^”)
.如果真结束
.如果真结束
.子程序 _银白皮肤_被选择, , , 银白皮肤
更换新皮肤 (1)
.子程序 _浅白皮肤_被选择, , , 浅白皮肤
更换新皮肤 (10)
.子程序 _浅灰皮肤_被选择, , , 浅灰皮肤
更换新皮肤 (13)
.子程序 _浅蓝皮肤_被选择, , , 浅蓝皮肤
更换新皮肤 (19)
.子程序 _浅黑皮肤_被选择, , , 浅黑皮肤
更换新皮肤 (5)
.子程序 _炫银皮肤_被选择, , , 炫银皮肤
更换新皮肤 (2)
.子程序 _炫白皮肤_被选择, , , 炫白皮肤
更换新皮肤 (15)
.子程序 _炫蓝皮肤_被选择, , , 炫蓝皮肤
更换新皮肤 (18)
.子程序 _深黑皮肤_被选择, , , 深黑皮肤
更换新皮肤 (14)
.子程序 __启动窗口_可否被关闭, 逻辑型, , 透明显示最小化运行
.局部变量 变量1, 整数型
变量1 = 255
.计次循环首 (255, )
设置窗口透明度 (_启动窗口.取窗口句柄 (), 变量1)
变量1 = 变量1 - 1
.如果真 (变量1 = 1)
置托盘图标 (#程序图标, “古老的传说记事本v1.2”)
_启动窗口.可视 = 假
.如果真结束
.计次循环尾 ()
返回 (假)
.子程序 __启动窗口_托盘事件, , , 透明显示_启动窗口
.参数 操作类型, 整数型
.局部变量 变量1, 整数型
.如果真 (操作类型 = 1)
_启动窗口.可视 = 真
.计次循环首 (255, 变量1)
设置窗口透明度 (_启动窗口.取窗口句柄 (), 变量1)
.计次循环尾 ()
.如果真结束
.如果真 (操作类型 = 3)
弹出菜单 (图标菜单, 取鼠标水平位置 (), 取鼠标垂直位置 ())
.如果真结束
.子程序 __启动窗口_将被销毁, , , 销毁任务栏图标
置托盘图标 ({ }, )
.子程序 _打开传说记事本_被选择, , , _启动窗口.可视=真
__启动窗口_托盘事件 (1)
.子程序 _销毁_被选择, , , 销毁软件
销毁 ()
.子程序 _超级编辑框1_按下某键, 逻辑型, , 正在打字中...
.参数 键代码, 整数型
.参数 功能键状态, 整数型
当前是否正在打字 = 真
按钮1.标题 = “正在打字中...”
时钟1.时钟周期 = 800
返回 (真)
.子程序 _超级编辑框1_放开某键, 逻辑型, , 暂停打字中...
.参数 键代码, 整数型
.参数 功能键状态, 整数型
当前是否正在打字 = 假
返回 (真)
.子程序 _时钟1_周期事件, , , 暂停打字中...
.如果真 (当前是否正在打字 = 假)
按钮1.标题 = “暂停打字中...”
.如果真结束
.子程序 _超级编辑框1_选择区被改变, , , 超级编辑框1.滚动
超级编辑框1.滚动 (1)
❾ 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();
}
}
❿ 黑客记事本源码
楼主可以去华夏黑客联盟注册份额帐号 里面有记事本的源码 华夏是个非营利性的网站,里面有很多资源,楼主有兴趣的话可以注册个帐号进去看看.