源文件、文檔說明、可運行的jar文件下載地址
免費下載地址在 http://linux.linuxidc.com/
用戶名與密碼都是www.linuxidc.com
具體下載目錄在 /pub/2011/11/05/Java 記事本代碼/
- /**
- * NoteBook
- *
- * @versionliujunguang
- * @version 1.00 09/10/25
- */
- public class NoteBook {
- public static void main(String[] args) {
- // Create application frame.
- NoteBookFrame frame = new NoteBookFrame();
- // Show frame
- frame.setVisible(true);
- }
- }
- import java.awt.*;
- /**
- * NoteBook-OpenClass.
- *
- * @liujunguang
- * @version 1.00 09/10/28
- */
-
- class SeeClass extends Frame
- {
- NoteBookFrame notebookframe = null;
- SeeClass(NoteBookFrame p)
- {
- notebookframe = p;
- }
- public void Modo()
- {
- System.out.println("狀態欄");
- }
- }
- //編輯類中的查找選項的實現
- import javax.swing.*;
- import java.awt.*;
- import java.awt.event.*;
- import java.lang.*;//String 類
- import javax.swing.JOptionPane;
- class SearchFrame extends JFrame implements ActionListener,ItemListener//單選按鈕事件接口
- {
- JLabel label1,label2,label3;
- JButton but1,but2,but3,but4;
- JTextField textfield,text;
- JRadioButton radiobutton1,radiobutton2;
- ButtonGroup group1;
- JCheckBox box1;
- NoteBookFrame notebookframe = null;
- String sub1="",sub2="";
- int n=-1;
- boolean isup = false;//判斷是否是最後一個找到的內容時用到
- boolean direction = true ;//判斷查找方向 向下為 true
- SearchFrame(NoteBookFrame p)
- {
- notebookframe = p;
- label1 = new JLabel("查找內容(N):");
- label2 = new JLabel("方向");
- label3 = new JLabel("替換為(P)");
-
- but1 = new JButton("查找下一個(F)");
- but2 = new JButton(" 取 消 ");
- but3 = new JButton(" 替 換 ");
- but4 = new JButton(" 轉 到 ");
- textfield = new JTextField(15);
- text = new JTextField(15);
-
- radiobutton1 = new JRadioButton("向下(U)",true);
- radiobutton2 = new JRadioButton("向上(D)");
-
- group1 = new ButtonGroup();
- //創建組件
- box1 = new JCheckBox("區分大小寫(C)");
- Container con = getContentPane();
- con.setLayout(null);//設置布局為空
- group1.add(radiobutton1);
- group1.add(radiobutton2);//將單選按鈕加到按鈕組中
-
- con.add(label1);//查找
- label1.setBounds(10,10,85,25);
-
- con.add(label3);//替換為
- label3.setBounds(10,45,85,25);
-
- con.add(textfield);//文本
- textfield.setBounds(90,10,180,25);
-
- con.add(text);//文本
- text.setBounds(90,45,180,25);
-
- con.add(but1);//查找下一個
- but1.setBounds(280,10,120,25);
-
- con.add(label2);//方向
- label2.setBounds(135,80,50,25);
-
- con.add(box1);
- box1.setBounds(10,115,120,25);
-
- con.add(radiobutton1);//向下
- radiobutton1.setBounds(130,115,70,25);
-
- con.add(radiobutton2);//向上
- radiobutton2.setBounds(200,115,70,25);
-
- con.add(but2);//取消
- but2.setBounds(280,115,120,25);
-
- con.add(but3);//替換
- but3.setBounds(280,45,120,25);
-
- con.add(but4);//轉到
- but4.setBounds(280,80,120,25);
-
- but1.addActionListener(this);
- but2.addActionListener(this);
- but3.addActionListener(this);
- but4.addActionListener(this);
- box1.addItemListener(this);
- textfield.addActionListener(this);
- text.addActionListener(this);
- radiobutton1.addItemListener(this);
- radiobutton2.addItemListener(this);
- //注冊監聽
-
- setBounds(500,300,420,180);
- setVisible(false);
- setTitle("查找");
-
- validate();
-
- }
- public void actionPerformed(ActionEvent e)
- {
- sub1 = notebookframe.textarea.getText();//得到文本區中的文本
- sub2 = textfield.getText();//得到文本框中的文本
- if(!isup) //如果不區分大小寫(默認不區分大小寫)
- {
- sub1 = sub1.toLowerCase();//將sub1轉換成小寫
- sub2 = sub2.toLowerCase();//將sub2轉換成小寫
- }
- if(!direction) n = sub1.lastIndexOf(sub2);//在文本區中查找文本框中的內容
- else n = sub1.indexOf(sub2);//在文本區中查找文本框中的內容
- if(e.getSource() == but1||e.getSource() == textfield)//查找下一個
- {
-
- if(n!=-1)
- {
- notebookframe.toFront();//如果此窗口是可見的,則將此窗口置於前端,並可以將其設為焦點 Window
- notebookframe.textarea.select(n,n+sub2.length());//選中查找的內容
- this.setVisible(false);
- }
- else
- {
- JOptionPane.showMessageDialog(this,"所指定的文本沒有找到!","記事本",JOptionPane.WARNING_MESSAGE);
- }
- }
- if(e.getSource() == but2)//取消
- {
- this.setVisible(false);
- }
- if(e.getSource() == but4)//轉到
- {
- int i=0,j=1;
- char ch[];
- try{
- int raw = Integer.parseInt(textfield.getText());//得到文本框中的文本
- String s = notebookframe.textarea.getText();
- ch = new char[s.length()];
- s.getChars(0,s.length()-1,ch,0);
-
- while(j<raw)
- {
- i++;
- if(ch[i] == '/n')
- {j++;}
- if(i == s.length())break;
- }
- if(raw == 1) //轉到第一行
- notebookframe.textarea.setCaretPosition(0);
-
- else
- notebookframe.textarea.setCaretPosition(i+1);//轉到指定行
- this.setVisible(false);
- }
- catch(Exception a){
- JOptionPane.showMessageDialog(this,"你輸入的位置不對無法到達!","記事本",JOptionPane.WARNING_MESSAGE);
- }
- }
-
- if(e.getSource() == but3)//替換
- {
- if(n != -1)
- {
- String sub3 = text.getText();
- notebookframe.textarea.select(n,n+sub2.length());//選中查找的內容
- notebookframe.textarea.replaceRange(sub3,n,n+sub2.length());//替換選中位置的文本
-
- sub1 = notebookframe.textarea.getText();//得到文本區中的文本
- sub2 = textfield.getText();//得到文本框中的文本
- if(!isup) //如果不區分大小寫(默認不區分大小寫)
- {
- sub1 = sub1.toLowerCase();//將sub1轉換成小寫
- sub2 = sub2.toLowerCase();//將sub2轉換成小寫
- }
- if(!direction) n = sub1.lastIndexOf(sub2);//在文本區中查找最後出現的文本框中的內容
- else n = sub1.indexOf(sub2);//在文本區中查找最先出現的文本框中的內容
- notebookframe.toFront();//如果此窗口是可見的,則將此窗口置於前端,並可以將其設為焦點 Window
- if(n!=-1 )
- {
- notebookframe.textarea.select(n,n+sub2.length());//選中查找內容
- }
- else
- JOptionPane.showMessageDialog(this,"所指定的文本沒有找到!","記事本",JOptionPane.WARNING_MESSAGE);
-
- }
- else
- {
- JOptionPane.showMessageDialog(this,"所指定的文本沒有找到無法替換!","記事本",JOptionPane.WARNING_MESSAGE);
- }
- }
-
- }
- public void nextShear()//查找下一個 菜單項對應的
- {
-
-
- if(n!=-1)
- {
- sub1 = notebookframe.textarea.getText().substring(n+sub2.length());//得到文本區的子串
- if(!isup) //如果不區分大小寫(默認不區分大小寫)
- {
-
- sub1 = sub1.toLowerCase();//將sub1轉換成小寫
- sub2 = sub2.toLowerCase();//將sub2轉換成小寫
- }
-
- if(sub1.indexOf(sub2)!=-1)
- {
-
- n = n+sub2.length()+sub1.indexOf(sub2);//得到查找內容在文本區中的位置
- notebookframe.textarea.select(n,n+sub2.length());//選中查找內容
- }
-
-
- else
- JOptionPane.showMessageDialog(this,"所指定的文本沒有找到!","記事本",JOptionPane.WARNING_MESSAGE);
- }
- else
- JOptionPane.showMessageDialog(this,"所指定的文本沒有找到!","記事本",JOptionPane.WARNING_MESSAGE);
-
-
-
-
- }
- public void itemStateChanged(ItemEvent ee)
- {
- if(ee.getSource() == box1)
- {
- if(box1.isSelected())
- {
- isup = true ;
- }
- else
- isup = false ;
- }
- if(ee.getSource() == radiobutton1)
- {
- if(radiobutton1.isSelected())
- {
- direction = true ;
- }
- }
- if(ee.getSource() == radiobutton2)
- {
- if(radiobutton2.isSelected())
- {
- direction = false;
- }
- }
- }
- }