❶ 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();
}
}
❿ 黑客記事本源碼
樓主可以去華夏黑客聯盟注冊份額帳號 裡面有記事本的源碼 華夏是個非營利性的網站,裡面有很多資源,樓主有興趣的話可以注冊個帳號進去看看.