天啊,?冖_Na0?為什麽會有我編的記事本代碼呢?呵呵……妳肯定是“請教”過我的吧
呵呵……我自己編了壹個,不過呢,沒有windows那麽多的功能啊。
涉及到兩個文件:
第壹個文件中的代碼:
package?MyProject;
import?java.awt.BorderLayout;
import?javax.swing.JPanel;
import?javax.swing.JFrame;
import?java.awt.Dimension;
import?javax.swing.JMenuBar;
import?javax.swing.JMenu;
import?javax.swing.JMenuItem;
import?javax.swing.JLabel;
import?java.awt.Rectangle;
import?javax.swing.JTextArea;
import?javax.swing.JScrollPane;
import?java.awt.datatransfer.*;
import?java.io.*;
public?class?MainFrame?extends?JFrame?{
private?static?final?long?serialVersionUID?=?1L; private?JPanel?jContentPane?=?null; private?JMenuBar?jJMenuBar?=?null; private?JMenu?jMenu?=?null; private?JMenu?jMenu1?=?null; private?JMenu?jMenu2?=?null; private?JMenuItem?jMenuItem?=?null; private?JMenuItem?jMenuItem1?=?null; private?JMenuItem?jMenuItem2?=?null; private?JMenuItem?jMenuItem3?=?null; private?JLabel?jLabel?=?null; private?JScrollPane?jScrollPane?=?null; private?JTextArea?jTextArea?=?null; private?JMenuItem?jMenuItem4?=?null; private?JMenuItem?jMenuItem5?=?null; private?JMenuItem?jMenuItem6?=?null; private?JMenuItem?jMenuItem7?=?null; private?static?MainFrame?myMainFrame=null; private?static?String?textstr="";///用於記錄文本文件的路徑 private?File?myFile=null; private?FileReader?myrder=null; private?FileWriter?mywr=null; /** *?This?is?the?default?constructor */ public?MainFrame()?{ super(); initialize(); } /** *?This?method?initializes?this *? *?@return?void */ private?void?initialize()?{? this.setSize(412,?350); this.setJMenuBar(getJJMenuBar()); this.setContentPane(getJContentPane()); this.setTitle("JFrame"); this.addWindowListener(new?java.awt.event.WindowAdapter()?{public?void?windowActivated(java.awt.event.WindowEvent?e)?{
if(!textstr.equals("")){
try{ myFile=new?File(textstr); if(!myFile.exists()){myFile.createNewFile();
} myrder=new?FileReader(myFile); char[]?mychar=new?char[(int)myFile.length()]; myrder.read(mychar); String?tmp=new?String(mychar); jTextArea.setText(tmp); myrder.close(); } catch(Exception?ee){ ee.printStackTrace(); }}
}
public?void?windowClosing(java.awt.event.WindowEvent?e)?{
System.exit(0);
}
}); this.setVisible(true); myMainFrame=this; } /** *?This?method?initializes?jContentPane *? *?@return?javax.swing.JPanel */ private?JPanel?getJContentPane()?{ if?(jContentPane?==?null)?{jLabel?=?new?JLabel();
jLabel.setBounds(new?Rectangle(15,?18,?65,?18));
jLabel.setText("文件內容:");
jContentPane?=?new?JPanel();
jContentPane.setLayout(null);
jContentPane.add(jLabel,?null);
jContentPane.add(getJScrollPane(),?null);
} return?jContentPane; } /** *?This?method?initializes?jJMenuBar? *? *?@return?javax.swing.JMenuBar? */ private?JMenuBar?getJJMenuBar()?{ if?(jJMenuBar?==?null)?{jJMenuBar?=?new?JMenuBar();
jJMenuBar.add(getJMenu());
jJMenuBar.add(getJMenu1());
jJMenuBar.add(getJMenu2());
} return?jJMenuBar; } /** *?This?method?initializes?jMenu? *? *?@return?javax.swing.JMenu? */ private?JMenu?getJMenu()?{ if?(jMenu?==?null)?{jMenu?=?new?JMenu();
jMenu.setText("文件");
jMenu.add(getJMenuItem());
jMenu.add(getJMenuItem1());
jMenu.add(getJMenuItem2());
jMenu.add(getJMenuItem3());
} return?jMenu; } /** *?This?method?initializes?jMenu1? *? *?@return?javax.swing.JMenu? */ private?JMenu?getJMenu1()?{ if?(jMenu1?==?null)?{jMenu1?=?new?JMenu();
jMenu1.setText("編輯");
jMenu1.add(getJMenuItem4());
jMenu1.add(getJMenuItem5());
jMenu1.add(getJMenuItem6());
} return?jMenu1; } /** *?This?method?initializes?jMenu2? *? *?@return?javax.swing.JMenu? */ private?JMenu?getJMenu2()?{ if?(jMenu2?==?null)?{jMenu2?=?new?JMenu();
jMenu2.setText("幫助");
jMenu2.add(getJMenuItem7());
} return?jMenu2; } /** *?This?method?initializes?jMenuItem? *? *?@return?javax.swing.JMenuItem? */ private?JMenuItem?getJMenuItem()?{ if?(jMenuItem?==?null)?{jMenuItem?=?new?JMenuItem();
jMenuItem.setText("打開");
jMenuItem.addActionListener(new?java.awt.event.ActionListener()?{
public?void?actionPerformed(java.awt.event.ActionEvent?e)?{
MainFrame.this.myMainFrame.setEnabled(false); SelectTextFile?mysl=new?SelectTextFile(); mysl.setVisible(true);}
});
} return?jMenuItem; } /** *?This?method?initializes?jMenuItem1? *? *?@return?javax.swing.JMenuItem? */ private?JMenuItem?getJMenuItem1()?{ if?(jMenuItem1?==?null)?{jMenuItem1?=?new?JMenuItem();
jMenuItem1.setText("關閉");
jMenuItem1.addActionListener(new?java.awt.event.ActionListener()?{
public?void?actionPerformed(java.awt.event.ActionEvent?e)?{
try{ myFile=null; } catch(Exception?ee){ ee.printStackTrace(); } jTextArea.setText("");}
});
} return?jMenuItem1; } /** *?This?method?initializes?jMenuItem2? *? *?@return?javax.swing.JMenuItem? */ private?JMenuItem?getJMenuItem2()?{ if?(jMenuItem2?==?null)?{jMenuItem2?=?new?JMenuItem();
jMenuItem2.setText("保存");
jMenuItem2.addActionListener(new?java.awt.event.ActionListener()?{
public?void?actionPerformed(java.awt.event.ActionEvent?e)?{
try{ String?tmp=jTextArea.getText(); char[]?mychar=tmp.toCharArray(); myFile.delete(); myFile.createNewFile(); mywr=new?FileWriter(myFile); mywr.write(mychar); mywr.close(); } catch(Exception?ee){ ee.printStackTrace(); }}
});
} return?jMenuItem2; } /** *?This?method?initializes?jMenuItem3? *? *?@return?javax.swing.JMenuItem? */ private?JMenuItem?getJMenuItem3()?{ if?(jMenuItem3?==?null)?{jMenuItem3?=?new?JMenuItem();
jMenuItem3.setText("退出");
jMenuItem3.addActionListener(new?java.awt.event.ActionListener()?{
public?void?actionPerformed(java.awt.event.ActionEvent?e)?{
System.exit(0);}
});
} return?jMenuItem3; } /** *?This?method?initializes?jScrollPane? *? *?@return?javax.swing.JScrollPane? */ private?JScrollPane?getJScrollPane()?{ if?(jScrollPane?==?null)?{jScrollPane?=?new?JScrollPane();
jScrollPane.setBounds(new?Rectangle(15,?46,?371,?225));
jScrollPane.setViewportView(getJTextArea());
} return?jScrollPane; } /** *?This?method?initializes?jTextArea? *? *?@return?javax.swing.JTextArea? */ private?JTextArea?getJTextArea()?{ if?(jTextArea?==?null)?{jTextArea?=?new?JTextArea();
} return?jTextArea; } /** *?This?method?initializes?jMenuItem4? *? *?@return?javax.swing.JMenuItem? */ private?JMenuItem?getJMenuItem4()?{ if?(jMenuItem4?==?null)?{jMenuItem4?=?new?JMenuItem();
jMenuItem4.setText("復制");
jMenuItem4.addActionListener(new?java.awt.event.ActionListener()?{
public?void?actionPerformed(java.awt.event.ActionEvent?e)?{
MainFrame.this.setClipboardText(MainFrame.this.getToolkit().getSystemClipboard(),jTextArea.getSelectedText());}
});
} return?jMenuItem4; } /** *?This?method?initializes?jMenuItem5? *? *?@return?javax.swing.JMenuItem? */ private?JMenuItem?getJMenuItem5()?{ if?(jMenuItem5?==?null)?{jMenuItem5?=?new?JMenuItem();
jMenuItem5.setText("剪切");
jMenuItem5.addActionListener(new?java.awt.event.ActionListener()?{
public?void?actionPerformed(java.awt.event.ActionEvent?e)?{
MainFrame.this.setClipboardText(MainFrame.this.getToolkit().getSystemClipboard(),jTextArea.getSelectedText()); jTextArea.setText(jTextArea.getText().substring(0,jTextArea.getSelectionStart()));}
});
} return?jMenuItem5; } /** *?This?method?initializes?jMenuItem6? *? *?@return?javax.swing.JMenuItem? */ private?JMenuItem?getJMenuItem6()?{ if?(jMenuItem6?==?null)?{jMenuItem6?=?new?JMenuItem();
jMenuItem6.setText("黏貼");
jMenuItem6.addActionListener(new?java.awt.event.ActionListener()?{
public?void?actionPerformed(java.awt.event.ActionEvent?e)?{
try{ jTextArea.setText(jTextArea.getText().substring(0,jTextArea.getSelectionStart())); jTextArea.setText(jTextArea.getText()+(MainFrame.this.getClipboardText(MainFrame.this.getToolkit().getSystemClipboard()))); } catch(Exception?ee){ ee.printStackTrace(); }}
});
} return?jMenuItem6; } /** *?This?method?initializes?jMenuItem7? *? *?@return?javax.swing.JMenuItem? */ private?JMenuItem?getJMenuItem7()?{ if?(jMenuItem7?==?null)?{jMenuItem7?=?new?JMenuItem();
jMenuItem7.setText("關於記事本");
jMenuItem7.addActionListener(new?java.awt.event.ActionListener()?{
public?void?actionPerformed(java.awt.event.ActionEvent?e)?{
////暫無代碼!!}
});
} return?jMenuItem7; } public?static?void?main(String?args[]){ new?MainFrame(); } public?static?MainFrame?getMyMainFrame()?{ return?myMainFrame; } public?static?void?setMyMainFrame(MainFrame?myMainFrame)?{ MainFrame.myMainFrame?=?myMainFrame; } public?static?String?getTextstr()?{ return?textstr; } public?static?void?setTextstr(String?textstr)?{ MainFrame.textstr?=?textstr; } protected?static?String?getClipboardText(Clipboard?clip)?throws?Exception{ Transferable?clipT?=?clip.getContents(null);//?獲取剪切板中的內容 if?(clipT?!=?null)?{if?(clipT.isDataFlavorSupported(DataFlavor.stringFlavor))?//?檢查內容是否是文本類型
return?(String)clipT.getTransferData(DataFlavor.stringFlavor);?
}? return?null;? }? protected?static?void?setClipboardText(Clipboard?clip,?String?writeMe)?{? Transferable?tText?=?new?StringSelection(writeMe);? clip.setContents(tText,?null);? }}?//?@jve:decl-index=0:visual-constraint="10,10"
第二個文件中的代碼:
(太長了,貼不上來)
整個效果就是實現了基本的打開、關閉、保存、退出的功能。
效果如圖: