-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- import java.awt.*;
- import javax.swing.*;
- import java.awt.event.*;
- import java.io.*;
- public class Nodepad extends JFrame
- {
- private JTextArea editor;
- private Container c;
- private Font f=new Font("sanserif",Font.PLAIN,12);
-
- private JMenuBar mb;
- private JMenu fileMenu;
- private JMenu editMenu;
- private JMenu formatMenu;
- private JMenuItem fileMenuOpen,fileMenuSave,fileMenuExit;
- private JMenuItem editMenuCopy,editMenuCut,editMenuPaste;
- private JMenu formatSet;
- private JMenuItem lineWrap,cancleLineWrap,wrapStyleWord,cancleWrapStyleWord;
-
-
- private JToolBar toolBar;
- private JButton b1,b2,b3,b4,b5;
-
-
- private JPopupMenu pm;
- private JMenuItem item1,item2,item3,item4,item5;
-
-
-
- public Nodepad()
- {
- super("簡單記事本");
- setSize(400,300);
-
- try{
- UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
- } catch (Exception e){ System.err.println("不能被設置外觀的原因:" e);}
-
-
-
- c=getContentPane();
- editor = new JTextArea();
- c.add(new JScrollPane(editor));
-
-
-
- mb = new JMenuBar();
- fileMenu = new JMenu("文件(F)");
- fileMenuOpen = new JMenuItem("打開(O)...Ctrl O");
- fileMenuSave = new JMenuItem("保存(S)...Ctrl S");
- fileMenuExit = new JMenuItem( "退出");
- JMHandler JM=new JMHandler();
- fileMenuOpen.addActionListener(JM);
- fileMenuSave.addActionListener(JM);
- fileMenuExit.addActionListener(JM);
- fileMenu.add(fileMenuOpen);
- fileMenu.add(fileMenuSave);
- fileMenu.addSeparator();
- fileMenu.add(fileMenuExit);
- fileMenu.setFont(f);
-
-
-
- editMenu = new JMenu("編輯(E)");
- editMenuCopy = new JMenuItem("複製(C) Ctrl C");
- editMenuCut = new JMenuItem("剪切(T) Ctrl X");
- editMenuPaste = new JMenuItem("粘貼(P) Ctrl v");
- EMHandler EM=new EMHandler();
- editMenuCopy.addActionListener(EM);
- editMenuCut.addActionListener(EM);
- editMenuPaste.addActionListener(EM);
- editMenu.add(editMenuCopy);
- editMenu.add(editMenuCut);
- editMenu.add(editMenuPaste);
- editMenu.setFont(f);
-
-
- formatMenu = new JMenu("格式(O)");
- formatSet = new JMenu("格式設置");
- lineWrap = new JMenuItem("自動換行");
- cancleLineWrap = new JMenuItem("取消自動換行");
- wrapStyleWord = new JMenuItem("斷行不斷字");
- cancleWrapStyleWord = new JMenuItem("取消斷行不斷字");
- FMHandler FM=new FMHandler();
- lineWrap.addActionListener(FM);
- cancleLineWrap.addActionListener(FM);
- wrapStyleWord.addActionListener(FM);
- cancleWrapStyleWord.addActionListener(FM);
- formatSet.add(lineWrap);
- formatSet.add(cancleLineWrap);
- formatSet.addSeparator();
- formatSet.add(wrapStyleWord);
- formatSet.add(cancleWrapStyleWord);
- formatMenu.add(formatSet);
- formatMenu.setFont(f);
-
-
-
- mb.add(fileMenu);
- mb.add(editMenu);
- mb.add(formatMenu);
-
-
-
- toolBar =new JToolBar();
- b1= new JButton(new ImageIcon("img/open.gif"));
- b2= new JButton(new ImageIcon("img/save.gif"));
- b3= new JButton(new ImageIcon("img/copy.gif"));
- b4= new JButton(new ImageIcon("img/cut.gif"));
- b5= new JButton(new ImageIcon("img/paste.gif"));
- TBHandler TB=new TBHandler();
- b1.addActionListener(TB); b2.addActionListener(TB);
- b3.addActionListener(TB); b4.addActionListener(TB);
- b5.addActionListener(TB);
-
- toolBar.add(b1); toolBar.add(b2);
- toolBar.add(b3); toolBar.add(b4);
- toolBar.add(b5);
-
-
-
- pm =new JPopupMenu();
- item1 = new JMenuItem("打開");
- item2 = new JMenuItem("保存");
- item3 = new JMenuItem("複製");
- item4 = new JMenuItem("剪切");
- item5 = new JMenuItem("粘貼");
- JPHandler JP=new JPHandler();
- item1.addActionListener(JP);
- item2.addActionListener(JP);
- item3.addActionListener(JP);
- item4.addActionListener(JP);
- item5.addActionListener(JP);
- editor.addMouseListener(JP);
- pm.add(item1); pm.add(item2);
- pm.add(item3); pm.add(item4);
- pm.add(item5);
-
-
-
-
-
-
-
- setJMenuBar(mb);
- c.add(toolBar,BorderLayout.NORTH);
-
-
- setVisible(true);
- setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- }
-
-
-
-
- private class JMHandler implements ActionListener
- {
- public void actionPerformed(ActionEvent e)
- {
- if(e.getSource()==fileMenuOpen){ loadFile(); }
- else if(e.getSource()==fileMenuSave){ saveFile(); }
- else{System.exit(0);}
- }
-
- }
-
- public void loadFile()
- {
- JFileChooser fc=new JFileChooser();
- int r=fc.showOpenDialog(this);
- if(r==JFileChooser.APPROVE_OPTION)
- {
- File file=fc.getSelectedFile();
- try{ editor.read(new FileReader(file),null);}
- catch (IOException e){}
- }
- }
-
- public void saveFile()
- {
- JFileChooser fc=new JFileChooser();
- int r=fc.showSaveDialog(this);
- if(r==JFileChooser.APPROVE_OPTION)
- {
- File file=fc.getSelectedFile();
- try{ editor.write(new FileWriter(file));}
- catch(IOException e){}
- }
- }
-
-
-
- private class EMHandler implements ActionListener
- {
- public void actionPerformed(ActionEvent e)
- {
- if(e.getSource()==editMenuCopy)
- {
- editor.copy();
- editor.requestFocus();
- }
- else if(e.getSource()==editMenuCut)
- {
- editor.cut();
- editor.requestFocus();
- }
- else
- {
- editor.paste();
- editor.requestFocus();
- }
- }
- }
-
- private class FMHandler implements ActionListener
- {
- public void actionPerformed(ActionEvent e)
- {
- if(e.getSource()==lineWrap){ editor.setLineWrap(true); }
- else if(e.getSource()==cancleLineWrap) { editor.setLineWrap(false);}
- else if(e.getSource()==wrapStyleWord) { editor.setWrapStyleWord(true);}
- else{ editor.setWrapStyleWord(false); }
- }
- }
-
-
-
- private class TBHandler implements ActionListener
- {
- public void actionPerformed(ActionEvent e)
- {
- if(e.getSource()==b1){ loadFile(); }
- else if(e.getSource()==b2) {saveFile();}
- else if(e.getSource()==b3)
- {
- editor.copy();
- editor.requestFocus();
- }
- else if(e.getSource()==b4)
- {
- editor.cut();
- editor.requestFocus();
- }
- else
- {
- editor.paste();
- editor.requestFocus();
- }
- }
- }
-
-
- private class JPHandler implements ActionListener,MouseListener
- {
- public void actionPerformed(ActionEvent e)
- {
- if(e.getSource()==item1){ loadFile(); }
- else if(e.getSource()==item2) {saveFile();}
- else if(e.getSource()==item3)
- {
- editor.copy();
- editor.requestFocus();
- }
- else if(e.getSource()==item4)
- {
- editor.cut();
- editor.requestFocus();
- }
- else
- {
- editor.paste();
- editor.requestFocus();
- }
- }
-
- public void mouseReleased(MouseEvent e)
- {
- if(e.isPopupTrigger())
- pm.show(editor,e.getX(),e.getY());
- }
-
- public void mouseClicked(MouseEvent e){}
- public void mouseEntered(MouseEvent e){}
- public void mouseExited(MouseEvent e){}
- public void mousePressed(MouseEvent e){}
- }
-
-
-
- public static void main(String []args)
- {
- Nodepad N=new Nodepad();
- }
-
- }
[火星人
]
Java圖形用戶界面:高級組件綜合例子已經有405次圍觀
http://coctec.com/docs/java/show-post-59887.html