java之 22天 GUI 圖形界面編程(一)

轉自:http://takeme.iteye.com/blog/1876850java

GUI(圖形用戶界面) ide

Java代碼
  1 import java.awt.Button;  
  2 import java.awt.FlowLayout;  
  3 import java.awt.Frame;  
  4 import java.awt.event.WindowAdapter;  
  5 import java.awt.event.WindowEvent;  
  6   
  7 /** 
  8  * GUI(圖形用戶界面) 
  9  *  Graphical User Interface(圖形用戶接口) 
 10  *  用圖形的方式,來顯示計算機操做的界面,這樣更方便更直觀. 
 11  *  
 12  * CLI 
 13  *  Command Line User Interface(命令行用戶接口) 
 14  *  就是經常使用的Dos命令行操做. 
 15  *  須要記憶一些經常使用的命令.操做更直觀. 
 16  *  
 17  * 舉例: 
 18  *   好比:建立文件夾,或者刪除文件夾等  
 19  *   md haha   del haha   
 20  *    
 21  *    
 22  * Java的GUI提供的對象都存在 java.Awt 和 javax.Swing 兩個包中. 
 23  *  
 24  * java.Awt:Abstract Window ToolKit(抽象 窗口工具包) 
 25  *    須要調用本地系統方法實現功能.屬重量級控件 (跨平臺不夠強) 
 26  *   
 27  * java.Swing:在AWT的基礎上,創建的一套圖形界面系統,器重提供了更多的組件, 
 28  *   並且徹底由java實現,加強了移植性,屬於輕量級控件.(跨平臺很好) 
 29  *    
 30  * java.swt: IBM 公司開發 Eclipse 用的組件工具 能夠Eclipse網站下載後就可使用了. 
 31  *  
 32  *  
 33  * 佈局管理器 
 34  * 1)容器中的組件的排放方式,就是佈局. 
 35  * 2)常見的佈局管理器 
 36  *   FlowLayout(流式佈局管理器) 
 37  *     從左到右的順序排列 
 38  *     Panel默認的佈局管理器 
 39  *   BorderLayout(辯解佈局管理器) 
 40  *     東  南  西  北   中 
 41  *     Frame 默認的佈局管理器 
 42  *     不指定佈局方式,默認 滿屏覆蓋,在添加一個 也是 滿屏覆蓋 
 43  *   GridLayout (網格佈局管理器) 
 44  *     規則的矩陣 
 45  *   CardLayout  (卡片佈局管理器) 
 46  *     選項卡 
 47  *   GridBagLayout(網格包佈局管理器) 
 48  *    非規則的矩陣 
 49  *     
 50  * 事件監聽機制組成 
 51  *  事件源:   
 52  *  事件:Event 
 53  *  監聽器:Listener 
 54  *  時間處理:(引起事件後處理方式) 
 55  *   
 56  *  事件源:就是awt包或者swing包中的那些圖像界面組件. 
 57  *  事件:每一個事件源都有本身特定的對應時間和共性時間. 
 58  *  監聽器:能夠出發某一個事件的動做都已經封裝到監聽器中. 
 59  */  
 60   
 61   
 62 public class GuiDemo {  
 63     public static void main(String[] args) {  
 64         Frame f=new Frame("my awt");  
 65         f.setSize(500,400);  
 66         f.setLocation(300,200);  
 67         f.setLayout(new FlowLayout());  
 68           
 69         Button b=new Button("我是一個按鈕");  
 70           
 71         f.add(b);  
 72           
 73         f.addWindowListener(new MyWin());  
 74           
 75         f.setVisible(true);  
 76         System.out.println("Hello world!");  
 77     }  
 78   
 79 }  
 80   
 81 //由於接口WindowLinstener中的全部方法都被子類 WindowAdapter實現了,.  
 82 //而且覆蓋了其中的全部方法,那麼咱們只能繼承 WindowAdapter 覆蓋咱們的方法便可  
 83 class MyWin extends WindowAdapter{  
 84       
 85     @Override  
 86     public void windowClosing(WindowEvent e) {  
 87         // TODO Auto-generated method stub  
 88         //System.out.println("Window closing"+e.toString());  
 89         System.out.println("我關了");  
 90         System.exit(0);  
 91     }  
 92     @Override  
 93     public void windowActivated(WindowEvent e) {  
 94         //每次得到焦點 就會觸發  
 95         System.out.println("我活了");    
 96         //super.windowActivated(e);  
 97     }  
 98     @Override  
 99     public void windowOpened(WindowEvent e) {  
100         // TODO Auto-generated method stub  
101         System.out.println("我開了");  
102         //super.windowOpened(e);  
103     }  
104       
105 }  

簡單Frame 工具

Java代碼佈局

 1 import java.awt.Button;  
 2 import java.awt.FlowLayout;  
 3 import java.awt.Frame;  
 4 import java.awt.event.ActionEvent;  
 5 import java.awt.event.ActionListener;  
 6 import java.awt.event.WindowAdapter;  
 7 import java.awt.event.WindowEvent;  
 8   
 9 public class FrameDemo {  
10   
11     //定義該圖像中所須要的組件的引用  
12     private Frame f;  
13     private Button but;  
14       
15     FrameDemo(){  
16         init();  
17           
18     }  
19       
20     public void init(){  
21           
22         f=new Frame("my freame");  
23         f.setBounds(300,100,600,500);  
24         f.setLayout(new FlowLayout());  //採用流式佈局  
25           
26         but=new  Button("my button");  
27         //將組件添加到 frame中  
28         f.add(but);  
29           
30         //加載一下窗體上的事件.  
31         myEvent();  
32         //顯示窗體  
33         f.setVisible(true);  
34     }  
35     private void myEvent(){  
36         f.addWindowListener(new WindowAdapter(){  
37             @Override  
38             public void windowClosing(WindowEvent e) {  
39                 // TODO Auto-generated method stub  
40                 //super.windowClosing(e);  
41                 System.exit(0);  
42             }  
43         });  
44           
45         //讓按鈕具有退出程序的功能  
46         /* 
47          * 按鈕就是事件源 
48          * 那麼選擇那個監聽器呢? 
49          * 經過關閉窗體實例瞭解到,下個要知道那個組件具有什麼樣的特有監聽器, 
50          * 須要查看該組件對象的功能. 
51          */  
52         //添加一個活動監聽  
53         but.addActionListener(new ActionListener() {  
54               
55             @Override  
56             public void actionPerformed(ActionEvent e) {  
57                 // TODO Auto-generated method stub  
58                 System.out.println("退出, 按鈕乾的");  
59                 System.exit(0);  
60             }  
61         });  
62           
63     }  
64       
65     public static void main(String[] args) {  
66         FrameDemo f=new FrameDemo();  
67     }  
68   
69 }  

鍵盤和鼠標事件 網站

Java代碼
  1 import java.awt.Button;  
  2 import java.awt.FlowLayout;  
  3 import java.awt.Frame;  
  4 import java.awt.TextField;  
  5 import java.awt.event.ActionEvent;  
  6 import java.awt.event.ActionListener;  
  7 import java.awt.event.KeyAdapter;  
  8 import java.awt.event.KeyEvent;  
  9 import java.awt.event.MouseAdapter;  
 10 import java.awt.event.MouseEvent;  
 11 import java.awt.event.WindowAdapter;  
 12 import java.awt.event.WindowEvent;  
 13   
 14 public class MouseAndKeyEvent {  
 15   
 16     private Frame f;  
 17     private Button but;  
 18     private TextField tf;  
 19       
 20     public MouseAndKeyEvent() {  
 21         init();  
 22     }  
 23   
 24     private void init(){  
 25         f=new Frame("me frame");  
 26         f.setBounds(300, 200, 600, 500);  
 27         f.setLayout(new FlowLayout());  
 28           
 29         tf=new TextField(20);  
 30         but=new Button("my Botton");  
 31           
 32         f.add(tf);  
 33         f.add(but);  
 34           
 35         event();  
 36           
 37         f.setVisible(true);  
 38     }  
 39   
 40     private void event(){  
 41         f.addWindowListener(new WindowAdapter() {  
 42             @Override  
 43             public void windowClosing(WindowEvent e) {  
 44                 // TODO Auto-generated method stub  
 45                 System.exit(0);  
 46             }  
 47           
 48         });  
 49         tf.addKeyListener(new KeyAdapter() {  
 50             public void keyPressed(KeyEvent e){  
 51                 int code=e.getKeyCode();  
 52                 if(!(code>=KeyEvent.VK_0 && code<=KeyEvent.VK_9)){  
 53                     System.out.println(code+"....非法的輸入");  
 54                     e.consume();  //不執行加入文本框.  
 55                 }  
 56                   
 57             }  
 58               
 59         });  
 60           
 61           
 62           
 63         but.addActionListener(new ActionListener() {  
 64               
 65             @Override  
 66             public void actionPerformed(ActionEvent e) {  
 67                 // TODO Auto-generated method stub  
 68                 System.out.println("actionPerformed 活動一次");  
 69             }  
 70         });  
 71           
 72         but.addMouseListener(new MouseAdapter() {  
 73             private int count=0;  
 74             private int clickCount=1;  
 75             public void mouseEntered(MouseEvent e){  
 76                 System.out.println("鼠標進入到改組件"+count++);  
 77             }  
 78               
 79             public void mouseClicked(MouseEvent e){  
 80                 if(e.getClickCount()==2){  
 81                     System.out.println("雙擊動做");  
 82                 }else  
 83                     System.out.println("點擊動做"+clickCount++);  
 84                   
 85             }  
 86               
 87         });  
 88         //添加 鍵盤事件  
 89         but.addKeyListener(new KeyAdapter() {  
 90           
 91             public void keyPressed(KeyEvent e){  
 92                 System.out.println(e.getKeyChar()+"..."+e.getKeyCode());  
 93                 System.out.println(KeyEvent.getKeyText(e.getKeyCode())+"..."+e.getKeyCode());  
 94                 //enter  就退出  
 95                 /*if(e.getKeyCode()==KeyEvent.VK_ENTER) 
 96                     System. 
 97                     exit(0);*/  
 98                   
 99                 //ctrl + Enter 發送消息  
100                 if(e.isControlDown() && e.getKeyCode()==KeyEvent.VK_ENTER){  
101                     System.out.println("我要發送消息!");  
102                 }  
103                   
104             }  
105           
106         });  
107     }  
108   
109     public static void main(String[] args) {  
110         // TODO Auto-generated method stub  
111         new MouseAndKeyEvent();  
112     }  
113   
114 }  

 

  1. import java.awt.Button;  
  2. import java.awt.FlowLayout;  
  3. import java.awt.Frame;  
  4. import java.awt.TextField;  
  5. import java.awt.event.ActionEvent;  
  6. import java.awt.event.ActionListener;  
  7. import java.awt.event.KeyAdapter;  
  8. import java.awt.event.KeyEvent;  
  9. import java.awt.event.MouseAdapter;  
  10. import java.awt.event.MouseEvent;  
  11. import java.awt.event.WindowAdapter;  
  12. import java.awt.event.WindowEvent;  
  13.   
  14. public class MouseAndKeyEvent {  
  15.   
  16.     private Frame f;  
  17.     private Button but;  
  18.     private TextField tf;  
  19.       
  20.     public MouseAndKeyEvent() {  
  21.         init();  
  22.     }  
  23.   
  24.     private void init(){  
  25.         f=new Frame("me frame");  
  26.         f.setBounds(300200600500);  
  27.         f.setLayout(new FlowLayout());  
  28.           
  29.         tf=new TextField(20);  
  30.         but=new Button("my Botton");  
  31.           
  32.         f.add(tf);  
  33.         f.add(but);  
  34.           
  35.         event();  
  36.           
  37.         f.setVisible(true);  
  38.     }  
  39.   
  40.     private void event(){  
  41.         f.addWindowListener(new WindowAdapter() {  
  42.             @Override  
  43.             public void windowClosing(WindowEvent e) {  
  44.                 // TODO Auto-generated method stub  
  45.                 System.exit(0);  
  46.             }  
  47.           
  48.         });  
  49.         tf.addKeyListener(new KeyAdapter() {  
  50.             public void keyPressed(KeyEvent e){  
  51.                 int code=e.getKeyCode();  
  52.                 if(!(code>=KeyEvent.VK_0 && code<=KeyEvent.VK_9)){  
  53.                     System.out.println(code+"....非法的輸入");  
  54.                     e.consume();  //不執行加入文本框.  
  55.                 }  
  56.                   
  57.             }  
  58.               
  59.         });  
  60.           
  61.           
  62.           
  63.         but.addActionListener(new ActionListener() {  
  64.               
  65.             @Override  
  66.             public void actionPerformed(ActionEvent e) {  
  67.                 // TODO Auto-generated method stub  
  68.                 System.out.println("actionPerformed 活動一次");  
  69.             }  
  70.         });  
  71.           
  72.         but.addMouseListener(new MouseAdapter() {  
  73.             private int count=0;  
  74.             private int clickCount=1;  
  75.             public void mouseEntered(MouseEvent e){  
  76.                 System.out.println("鼠標進入到改組件"+count++);  
  77.             }  
  78.               
  79.             public void mouseClicked(MouseEvent e){  
  80.                 if(e.getClickCount()==2){  
  81.                     System.out.println("雙擊動做");  
  82.                 }else  
  83.                     System.out.println("點擊動做"+clickCount++);  
  84.                   
  85.             }  
  86.               
  87.         });  
  88.         //添加 鍵盤事件  
  89.         but.addKeyListener(new KeyAdapter() {  
  90.           
  91.             public void keyPressed(KeyEvent e){  
  92.                 System.out.println(e.getKeyChar()+"..."+e.getKeyCode());  
  93.                 System.out.println(KeyEvent.getKeyText(e.getKeyCode())+"..."+e.getKeyCode());  
  94.                 //enter  就退出  
  95.                 /*if(e.getKeyCode()==KeyEvent.VK_ENTER) 
  96.                     System. 
  97.                     exit(0);*/  
  98.                   
  99.                 //ctrl + Enter 發送消息  
  100.                 if(e.isControlDown() && e.getKeyCode()==KeyEvent.VK_ENTER){  
  101.                     System.out.println("我要發送消息!");  
  102.                 }  
  103.                   
  104.             }  
  105.           
  106.         });  
  107.     }  
  108.   
  109.     public static void main(String[] args) {  
  110.         // TODO Auto-generated method stub  
  111.         new MouseAndKeyEvent();  
  112.     }  
  113.   
  114. }  
相關文章
相關標籤/搜索