自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

介紹AWT和Swing組件

開(kāi)發(fā) 后端
本文介紹AWT和Swing組件,隨著計(jì)算機(jī)硬件的升級(jí),一點(diǎn)點(diǎn)速度已經(jīng)不是問(wèn)題。相反的,用戶(hù)更需要美觀的用戶(hù)界面,開(kāi)發(fā)人員則更需要易用的開(kāi)發(fā)組件。

AWT和Swing 是 Java 設(shè)計(jì) GUI 用戶(hù)界面的基礎(chǔ)。與 AWT 的重量級(jí)組件不同,Swing 中大部分是輕量級(jí)組件。正是這個(gè)原因,Swing 幾乎無(wú)所不能,不但有各式各樣先進(jìn)的組件,而且更為美觀易用。所以一開(kāi)始使用 AWT 的程序員很快就轉(zhuǎn)向使用 Swing 了。
 
那為什么 AWT 組件沒(méi)有消亡呢?因?yàn)?Swing 是架構(gòu)在 AWT 之上的,沒(méi)有 AWT 就沒(méi)有 Swing。所以程序員可以根據(jù)自己的習(xí)慣選擇使用 AWT 或者是 Swing。但是,最好不要二者混用——除開(kāi)顯示風(fēng)格不同不說(shuō),還很可能造成層次 (Z-Order) 錯(cuò)亂,比如下例:

  1. importjava.awt.BorderLayout;  
  2. importjava.awt.Button;  
  3.  
  4. importjavax.swing.JButton;  
  5. importjavax.swing.JDesktopPane;  
  6. importjavax.swing.JFrame;  
  7. importjavax.swing.JInternalFrame;  
  8. importjavax.swing.JPanel;  
  9.  
  10. publicfinalclassAwtSwing...{  
  11.  
  12. publicstaticvoidmain(String[]args)...{  
  13. AwtSwingas=newAwtSwing();  
  14. as.show();  
  15. }  
  16.  
  17. JFrameframe=newJFrame("TestAWTandSWING");  
  18.  
  19. JDesktopPanejdp=newJDesktopPane();  
  20.  
  21. JInternalFramejif1=newJInternalFrame("controls");  
  22.  
  23. JInternalFramejif2=newJInternalFrame("cover");  
  24.  
  25. publicAwtSwing()...{  
  26. frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
  27. frame.getContentPane().add(jdp);  
  28.  
  29. jif1.setContentPane(newJPanel());  
  30. jif2.setContentPane(newJPanel());  
  31.  
  32. jif1.getContentPane().setLayout(newBorderLayout());  
  33. jif1.getContentPane().add(newButton("AWTButton"),BorderLayout.WEST);  
  34. jif1.getContentPane().add(newJButton("SwingButton"),  
  35. BorderLayout.EAST);  
  36.  
  37. jif1.setSize(200,100);  
  38. jif2.setSize(200,100);  
  39.  
  40. jdp.add(jif1);  
  41. jdp.add(jif2);  
  42.  
  43. frame.setSize(240,140);  
  44. }  
  45.  
  46. publicvoidshow()...{  
  47. frame.setVisible(true);  
  48. jif1.setVisible(true);  
  49. jif2.setVisible(true);  
  50. }  
  51.  

運(yùn)行這個(gè)程序,并用鼠標(biāo)拖動(dòng)那個(gè)名為“cover”的子窗口,我們會(huì)發(fā)現(xiàn)一個(gè)非常有趣的現(xiàn)象,如圖:

Swing Button 是“畫(huà)”上去的


顯然 cover 子窗口是在 controls 子窗口之上的,但是它只罩蓋住了 Swing Button,沒(méi)有罩蓋住 AWT Button。再看一會(huì)兒,你是不是有這樣一種感覺(jué):Swing Button 是“畫(huà)”上去的,而 AWT Button 則是“貼”上去的。這就是二者混用造成層次錯(cuò)亂的一個(gè)例子。
 
Swing組件有美觀、易用、組件量大等特點(diǎn),也有缺點(diǎn)——使用 Swing組件的程序通常會(huì)比使用 AWT 組件的程序運(yùn)行更慢。但是大家都還是更喜歡用 Swing組件,原因何在?因?yàn)殡S著計(jì)算機(jī)硬件的升級(jí),一點(diǎn)點(diǎn)速度已經(jīng)不是問(wèn)題。相反的,用戶(hù)更需要美觀的用戶(hù)界面,開(kāi)發(fā)人員則更需要易用的開(kāi)發(fā)組件。

【編輯推薦】

  1. Swing應(yīng)用程序處理函數(shù)
  2. 淺談SwingWorker的使用
  3. AWT,SWT和Swing的布局管理器與Look And Feel機(jī)制
  4. 概述SWT采用AWT和Swing的一些優(yōu)點(diǎn)
  5. Swing組件的paint方法的處理流程
責(zé)任編輯:佚名 來(lái)源: 中國(guó)IT實(shí)驗(yàn)室
相關(guān)推薦

2009-07-10 17:03:17

AWT組件Swing組件

2009-07-17 15:30:30

JFaceAWT和SWTSwing

2009-07-10 15:41:27

Swing AWT

2009-07-10 17:20:38

Swing構(gòu)件AWT構(gòu)件

2009-07-14 15:01:02

AWT和Swing

2009-07-16 13:37:33

Swing和AWT

2009-07-15 16:39:51

AWT和Swing

2009-07-17 10:11:55

AWT和Swing

2009-07-17 09:36:14

SWT和Swing的區(qū)

2009-07-16 13:50:28

AWT和Swing

2009-07-17 09:07:20

2009-07-10 18:06:59

JTree Swing

2009-07-17 10:01:14

Swing和AWT

2009-07-14 12:58:49

AWT和Swing

2009-07-17 14:38:51

輕量級(jí)Swing組件

2009-07-14 15:12:36

SwingSWT和AWT

2009-07-14 13:49:28

Swing組件AWT

2009-07-17 10:25:41

AWT和SwingSWT

2009-07-17 09:55:02

事件監(jiān)聽(tīng)器SWT和SwingAWT

2009-07-15 13:31:51

Swing菜單和菜單項(xiàng)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)