日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯網營銷解決方案
Java圖形用戶界面:高級組件綜合例子

運行結果截圖如下:

創(chuàng)新互聯公司主要從事成都網站建設、網站制作、網頁設計、企業(yè)做網站、公司建網站等業(yè)務。立足成都服務尼瑪,十載網站建設經驗,價格優(yōu)惠、服務專業(yè),歡迎來電咨詢建站服務:18982081108

 
 
 
 
  1. /**
  2. 作者:wwj
  3. 日期:2012/4/18
  4. 功能:利用圖像用戶界面高級組件實現簡單記事本
  5. 說明:
  6. (1)創(chuàng)建一個名為“簡單記事本”窗口,在窗口中添加一個帶有滾動條的文本區(qū)。
  7. (2)在窗口中添加一個具有以下菜單的菜單欄:
  8.    1.“文件”菜單,包含“打開”、“保存”、“退出”的菜單項,菜單間加分隔線,
  9.       添加事件處理方法,使菜單具有打開、保存文件及退出的功能。
  10.    2.“編輯”菜單,包含“復制”、“剪切”、“粘貼”的菜單項,添加事件處理方法,
  11.       使菜單具有“復制”、“剪切”、“粘貼”的功能。
  12.    3.“格式”菜單,包含“格式設置”的二級子菜單;而二級“格式設置”子菜單,
  13.       包含 “自動換行”、“取消自動換行”、“斷行不斷字”、“取消斷行不斷字”的菜單項,添加事件處理方法,
  14.       設置文本框自動換行和斷行不斷字的格式。
  15.     (提示:JTextArea類中,使用setLineWrap(true)方法設置自動換行,使用setWrapStyleword(true)方法設置斷行不斷字,參考書本例8.7)
  16. (3)在窗口中添加工具欄,包含“打開”、“保存”、“復制”、“剪切”、“粘貼”圖片按鈕的工具欄,
  17.      添加事件處理方法,單擊相應的按鈕能實現相應的功能。
  18. (4)在窗口中添加彈出式菜單,包含“打開”、“保存”、“復制”、“剪切”、“粘貼”的菜單項,
  19.      直接添加分隔線,添并加事件處理方法,選擇相應的菜單項能實現相應的功能。
  20. **/
  21. import java.awt.*;
  22. import javax.swing.*;
  23. import java.awt.event.*;
  24. import java.io.*;
  25. public class Nodepad extends JFrame
  26. {
  27.     private JTextArea editor;
  28.     private Container c;
  29.     private Font f=new Font("sanserif",Font.PLAIN,12);
  30.     //菜單欄成員屬性聲明
  31.     private JMenuBar mb;        //菜單棒
  32.     private JMenu fileMenu;     //文件菜單
  33.     private JMenu editMenu;     //編輯菜單
  34.     private JMenu formatMenu;   //格式菜單
  35.     private JMenuItem fileMenuOpen,fileMenuSave,fileMenuExit;   //文件菜單的菜單項
  36.     private JMenuItem editMenuCopy,editMenuCut,editMenuPaste;   //編輯菜單的菜單項
  37.     private JMenu formatSet;//格式菜單第一級菜單
  38.     private JMenuItem lineWrap,cancleLineWrap,wrapStyleWord,cancleWrapStyleWord;//格式菜單的第二級菜單
  39.     //工具欄成員屬性聲明
  40.     private JToolBar toolBar;   //工具棒
  41.     private JButton b1,b2,b3,b4,b5; //聲明5個按鈕,分別為:“打開”、“保存”、“復制”、“剪切”、“粘貼”
  42.     
  43.     //彈出式菜單屬性聲明
  44.     private JPopupMenu pm;
  45.     private JMenuItem item1,item2,item3,item4,item5;
  46.     public Nodepad()
  47.     {
  48.         super("簡單記事本");
  49.         setSize(400,300);
  50.     
  51.         try{
  52.             UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
  53.         } catch (Exception e){ System.err.println("不能被設置外觀的原因:"+e);}
  54.         
  55.         c=getContentPane();         //創(chuàng)建一個內容面板
  56.         editor = new JTextArea();   //創(chuàng)建一個文本區(qū)
  57.         c.add(new JScrollPane(editor)); //設置滾動條,并添加到內容面板
  58.         //菜單欄的實現
  59.         //文件菜單的實現
  60.         mb = new JMenuBar();    //創(chuàng)建菜單棒
  61.         fileMenu = new JMenu("文件(F)");//創(chuàng)建菜單
  62.         fileMenuOpen = new JMenuItem("打開(O)...Ctrl+O");
  63.         fileMenuSave = new JMenuItem("保存(S)...Ctrl+S");
  64.         fileMenuExit = new JMenuItem("退出");
  65.         JMHandler JM=new JMHandler();       //創(chuàng)建監(jiān)聽器
  66.         fileMenuOpen.addActionListener(JM); //注冊監(jiān)聽器
  67.         fileMenuSave.addActionListener(JM);
  68.         fileMenuExit.addActionListener(JM);
  69.         fileMenu.add(fileMenuOpen);
  70.         fileMenu.add(fileMenuSave);
  71.         fileMenu.addSeparator();    //添加分隔線
  72.         fileMenu.add(fileMenuExit);
  73.         fileMenu.setFont(f);        //設置菜單中文體的字體
  74.         
  75.         //編輯菜單的實現
  76.         editMenu = new JMenu("編輯(E)");
  77.         editMenuCopy = new JMenuItem("復制(C) Ctrl+C");
  78.         editMenuCut = new JMenuItem("剪切(T) Ctrl+X");
  79.         editMenuPaste = new JMenuItem("粘貼(P) Ctrl+v");
  80.         EMHandler EM=new EMHandler();   //創(chuàng)建監(jiān)聽器
  81.         editMenuCopy.addActionListener(EM);//注冊監(jiān)聽器
  82.         editMenuCut.addActionListener(EM);
  83.         editMenuPaste.addActionListener(EM);
  84.         editMenu.add(editMenuCopy);
  85.         editMenu.add(editMenuCut);
  86.         editMenu.add(editMenuPaste);
  87.         editMenu.setFont(f);
  88.         //格式菜單的實現
  89.         formatMenu = new JMenu("格式(O)");            //創(chuàng)建菜單
  90.         formatSet = new JMenu("格式設置");          //二級菜單
  91.         lineWrap = new JMenuItem("自動換行");       //二級菜單項
  92.         cancleLineWrap = new JMenuItem("取消自動換行");
  93.         wrapStyleWord = new JMenuItem("斷行不斷字");
  94.         cancleWrapStyleWord = new JMenuItem("取消斷行不斷字");
  95.         FMHandler FM=new FMHandler();               //創(chuàng)建事件監(jiān)聽器
  96.         lineWrap.addActionListener(FM);             //注冊二級菜單項的監(jiān)聽器
  97.         cancleLineWrap.addActionListener(FM);
  98.         wrapStyleWord.addActionListener(FM);
  99.         cancleWrapStyleWord.addActionListener(FM);
  100.         formatSet.add(lineWrap);
  101.         formatSet.add(cancleLineWrap);
  102.         formatSet.addSeparator();   //添加分隔線
  103.         formatSet.add(wrapStyleWord);
  104.         formatSet.add(cancleWrapStyleWord);
  105.         formatMenu.add(formatSet);
  106.         formatMenu.setFont(f);
  107.         //將菜單全部添加菜單棒里
  108.         mb.add(fileMenu);
  109.         mb.add(editMenu);
  110.         mb.add(formatMenu);
  111.         //工具欄的實現
  112.         //按鈕分別為:“打開”、“保存”、“復制”、“剪切”、“粘貼”
  113.         toolBar =new JToolBar();    //創(chuàng)建工具棒
  114.         b1= new JButton(new ImageIcon("img/open.gif"));
  115.         b2= new JButton(new ImageIcon("img/save.gif"));
  116.         b3= new JButton(new ImageIcon("img/copy.gif"));
  117.         b4= new JButton(new ImageIcon("img/cut.gif"));
  118.         b5= new JButton(new ImageIcon("img/paste.gif"));
  119.         TBHandler TB=new TBHandler();       //創(chuàng)建按鈕監(jiān)聽器
  120.         b1.addActionListener(TB);   b2.addActionListener(TB);
  121.         b3.addActionListener(TB);   b4.addActionListener(TB);
  122.         b5.addActionListener(TB);
  123.         //把按鈕全部添加到工具棒中
  124.         toolBar.add(b1);    toolBar.add(b2);
  125.         toolBar.add(b3);    toolBar.add(b4);
  126.         toolBar.add(b5);
  127.         //彈出菜單的實現
  128.         pm =new JPopupMenu();   //創(chuàng)建彈出菜單
  129.         item1 = new JMenuItem("打開");
  130.         item2 = new JMenuItem("保存");
  131.         item3 = new JMenuItem("復制");
  132.         item4 = new JMenuItem("剪切");
  133.         item5 = new JMenuItem("粘貼");
  134.         JPHandler JP=new JPHandler();
  135.         item1.addActionListener(JP);  //注冊菜單項的鼠標事件監(jiān)聽器
  136.         item2.addActionListener(JP);
  137.         item3.addActionListener(JP);
  138.         item4.addActionListener(JP);
  139.         item5.addActionListener(JP);
  140.         editor.addMouseListener(JP);  //注冊文本區(qū)的鼠標事件監(jiān)聽器
  141.         pm.add(item1);  pm.add(item2);
  142.         pm.add(item3);  pm.add(item4);
  143.         pm.add(item5);
  144.         
  145.         //把菜單欄、工具欄、彈出菜單添加到內容面板
  146.         setJMenuBar(mb);        //顯示菜單欄
  147.         c.add(toolBar,BorderLayout.NORTH);
  148.         
  149.         setVisible(true);
  150.         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  151.     }
  152.     //自定義類實現文件菜單項的事件處理
  153.     private class JMHandler implements ActionListener
  154.     {   
  155.         public void actionPerformed(ActionEvent e)
  156.         {
  157.             if(e.getSource()==fileMenuOpen){ loadFile(); }
  158.             else if(e.getSource()==fileMenuSave){ saveFile(); }
  159.             else{System.exit(0);}
  160.         }
  161.     }
  162.     public void loadFile()  //打開文件方法
  163.     {
  164.         JFileChooser fc=new JFileChooser();
  165.         int r=fc.showOpenDialog(this);
  166.         if(r==JFileChooser.APPROVE_OPTION)
  167.         {
  168.             File file=fc.getSelectedFile();
  169.             try{ editor.read(new FileReader(file),null);}
  170.             catch(IOException e){}
  171.         }
  172.     }
  173.         
  174.     public void saveFile()  //保存文件的方法
  175.     {
  176.         JFileChooser fc=new JFileChooser();
  177.         int r=fc.showSaveDialog(this);
  178.         if(r==JFileChooser.APPROVE_OPTION)
  179.         {
  180.             File file=fc.getSelectedFile();
  181.             try{ editor.write(new FileWriter(file));}
  182.             catch(IOException e){}
  183.         }
  184.     }
  185.     
  186.     //編輯菜單菜單項的事件處理
  187.     private class EMHandler implements ActionListener
  188.     {
  189.         public void actionPerformed(ActionEvent e)
  190.         {
  191.             if(e.getSource()==editMenuCopy)     //實現復制功能
  192.             {
  193.                 editor.copy();
  194.                 editor.requestFocus();
  195.             }
  196.             else if(e.getSource()==editMenuCut)//實現剪切功能
  197.             {
  198.                 editor.cut();
  199.                 editor.requestFocus();
  200.             }
  201.             else                                //實現粘貼功能
  202.             {
  203.                 editor.paste();
  204.                 editor.requestFocus();
  205.             }
  206.         }
  207.     }
  208.     //格式菜單二級菜單的菜單項的事件處理
  209.     private class FMHandler implements ActionListener
  210.     {
  211.         public void actionPerformed(ActionEvent e)
  212.         {
  213.             if(e.getSource()==lineWrap){ editor.setLineWrap(true); }
  214.             else if(e.getSource()==cancleLineWrap) { editor.setLineWrap(false);}
  215.             else if(e.getSource()==wrapStyleWord) { editor.setWrapStyleWord(true);}
  216.             else{ editor.setWrapStyleWord(false); }
  217.         }
  218.     }
  219.     //自定義類實現工具欄的按鈕事件處理
  220.     private class TBHandler implements ActionListener
  221.     {
  222.         public void actionPerformed(ActionEvent e)
  223.         {
  224.             if(e.getSource()==b1){ loadFile(); }        //實現打開文件功能
  225.             else if(e.getSource()==b2) {saveFile();}    //實現保存文件功能
  226.             else if(e.getSource()==b3)  //文件復制
  227.             {
  228.                 editor.copy();
  229.                 editor.requestFocus();
  230.             }
  231.             else if(e.getSource()==b4) //文件剪切
  232.             {
  233.                 editor.cut();
  234.                 editor.requestFocus();
  235.             }
  236.             else                        //文件粘貼
  237.             {
  238.                 editor.paste();
  239.                 editor.requestFocus();
  240.             }
  241.         }
  242.     }
  243.     //自定義類實現彈出式菜單的事件處理
  244.     private class JPHandler implements ActionListener,MouseListener
  245.     {
  246.         public void actionPerformed(ActionEvent e)
  247.         {
  248.             if(e.getSource()==item1){ loadFile(); }     //實現打開文件功能
  249.             else if(e.getSource()==item2) {saveFile();} //實現保存文件功能
  250.             else if(e.getSource()==item3)   //文件復制
  251.             {
  252.                 editor.copy();
  253.                 editor.requestFocus();
  254.             }
  255.             else if(e.getSource()==item4) //文件剪切
  256.             {
  257.                 editor.cut();
  258.                 editor.requestFocus();
  259.             }
  260.             else                        //文件粘貼
  261.             {
  262.                 editor.paste();
  263.                 editor.requestFocus();
  264.             }
  265.         }
  266.         public void mouseReleased(MouseEvent e)
  267.         {
  268.             if(e.isPopupTrigger())                  //判斷是否按下鼠標右鍵
  269.                 pm.show(editor,e.getX(),e.getY());  //顯示彈出式菜單
  270.         }
  271.         public void mouseClicked(MouseEvent e){}
  272.         public void mouseEntered(MouseEvent e){}
  273.         public void mouseExited(MouseEvent e){}
  274.         public void mousePressed(MouseEvent e){}
  275.     }
  276.     
  277.     public static void main(String []args)
  278.     {
  279.         Nodepad N=new Nodepad();
  280.     }
  281.         
  282. }

文章題目:Java圖形用戶界面:高級組件綜合例子
文章出自:http://www.dlmjj.cn/article/cooeihc.html