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

Swing組件大全隨著Java風潮一起來席卷國內(nèi)

開發(fā) 后端
本文介紹Swing組件大全隨著Java風潮一起來席卷國內(nèi),學習Java的方法和路徑越來越多,并在學習過程中參考作者設計這一程序的方法和思想,最終形成自己的思維方式和學習方式。

一.拋磚引玉

本文指在利用一個小程序,Swing組件大全來引導大家學習Java這門語言,熟悉Java Swing的各個組件。并在學習過程中參考作者設計這一程序的方法和思想,最終形成自己的思維方式和學習方式。你能舉一返三是作者最開心的事情。小程序演示了Java Swing大部分組件。最后附上了全部代碼及詳細的注釋說明。希望本文能對大家學習Java有所幫助。

學習Java的方法和路徑越來越多。而在大量的書本前,在Java龐大的類庫前大大家都有點迷失方向的感覺,是學 J2EE,J2ME還是。。。。。。然而所有的這些都或多或少的離不開J2SE。萬丈高樓平地起。J2SE是整個Java的基礎,學好了這個對Java的各個方向都是很有利的。而學習J2SE的最初點就在界面設計,因為界面編程是你來感覺最直接的手段,是提高大家編程興趣的很好開始,因為你寫完程序編譯后可馬上看到自己的成果。而不像后臺編程做完了都感受不到效果。而好的界面也是你測試你其他程序的基礎。

界面設計!不就是拖拉操作嗎?如果是VB,VC等可視化的編程,的確只是一些拖拉操作,由于Java語言的設計中所有的東西都是程序代碼,在Java中如果想要設計一個好的界面,可不是簡單的拖拉操作能完成的。即使使用了如JBuilder這么強大的可視化工具,你也得親自動手寫一些界面設計代碼才能很好的完成你的任務。如果你能在此基礎上理解Java界面設計的思想,對你學習這門語言將有莫大的幫助。

好了,說了這么長的廢話,讓我們來看看Java的界面設計的基礎。

Java界面設計主要涉及Awt,Swing兩大類庫,Swing是Awt的擴展和功能加強。下面我們就以Swing為基礎來說說整個Java的界面設計。

二.感受效果

在開始之前,讓我們看看這篇文章要達到的效果,有了目標和成果才有學習的興趣,起碼我是這樣認為和學習的。如下圖所示,這就是我們設計的界面,它包括了Swing中大部分常用的組件。有些功能界面上反映不出來,大家可嘗試編譯源代碼點南擊各個部分,看看它們的響應事件。

三.設計思想和方法

不知道大家(一般是初學者)在看編程書籍的時候有這種體會沒有:在看的過程中,好像大部理解了,并且效率還不錯,可是回頭來要自己寫個和書上一樣的程序出來,可能不少人只有重新拿書照打的了;有些人在照書上打過了一遍,也似乎理解了。可回頭來真正到用的時候,好像又不記得了。作者本人在初學編程時就經(jīng)歷過很多次這種情況。

追其原因,無外乎沒有融會貫通所學的知識,編程最講求動手二字,動手的真正意義在于寫自己所想所領會的程序而不是copy現(xiàn)成的程序。因為只有經(jīng)過自己思考,設計才能把書上的知識真正溶入自己的大腦。下面我們以Swing組件大全來說說這個方法和思想。

在看完書上介紹的Swing組件這章后,我心中對Swing大概有了個了解,只差動手了。而本人又不想照書上的例子一個個來試。于是就想到了做個程序把書上介紹的所有組件放到一個界面來,并嘗試用到書上介紹的所有方法。

砍柴不誤磨刀功!在開始這前,我手畫了一份設計圖紙,如上面界面所示(當然沒那么漂亮了)。并用簡單的軟件工程思想對結(jié)構進行了大概的劃分。這里把整個界面劃分為一個主模塊和五大子模塊。所有的子模塊都是繼承至相應的容器,主模塊SwingTest 既是管理模塊也是主界面,繼承JFrame主框架,管理本身的屬性及JFrame上的其他子模塊。MenuTest子模塊繼承至JmenuBar負責菜單的顯示和事件處理。其他子模塊繼承至JPanel,管理放置在其上的組件的布局和顯示。從子模塊的名字大家也可看到他們的位置和功能。如下圖所示:

在編寫程序前想好結(jié)構和思路是個很好的習慣,它將會幫你大大減少工作量,提高程序的可讀性和效率。

四.容器,布局管理器,嵌板

Swing中所有的組件都是放到容器中,主要的容器包括:JFrame,JPanel,JWindow,JDialog,JPanle。JFrame是java的主框架,幾乎所有的Java應用程序界面都是在主框架之中設計的。有些容器并非一層,而由幾層嵌板組成,本文將會用到其中在個:拆分嵌板 (JSplitPane),內(nèi)容嵌板, 頁簽式嵌板(TabbedPane)

拆分嵌板:按指定的方向和方式拆分其內(nèi)的兩個子組件,記住一個拆分嵌板只能拆分兩個子組件,如果想要拆分三個,大家自己先想一想辦法。本節(jié)最后給出了答案。

內(nèi)容嵌板: JFrame,Jwindow,Jdialog就是上面提到的有多層嵌板的容器,如果要在這些容器上面放置組件,必須放置在他們的內(nèi)容嵌板(pane)上。我們通過函數(shù)getContentPane()可得到當前容器的內(nèi)容嵌板。

頁簽式嵌板:這個嵌板如同卡片,在上面提供文件夾式的頁簽,當前只顯示一頁,如要進入下一頁,只要點擊上面的頁簽。

有些如JPanel是可以直接放置組件的容器。所以不需要使用嵌板。

如果要按自己的想法排列放在容器上的組件,我們必須使用到布局管理器(Layout)來進行管理。Java系統(tǒng)默認的布局管理器為邊界管理器 (BorderLayout)。它把版面分為五大塊,中央?yún)^(qū)域(Center),頂端(North),底部(South),左側(cè)(West),右側(cè) (East),細心的你可能會發(fā)現(xiàn)我們的主界面就是用的這個布局架構。其他的幾個布局管理器有:
◆流布局(FlowLayout):把其內(nèi)的組件按從左到右,從上到下的流方式排列。
◆網(wǎng)格布局(GridLayout):把組件放置到布局中的設置的每個網(wǎng)格中
◆無序網(wǎng)格布局(GridBagLayout):類似于網(wǎng)格布局,但功能更強大也更復雜。能處理所有的布局。

如果你仔細觀察會發(fā)現(xiàn)我們的主界面最右邊會發(fā)現(xiàn)使用了網(wǎng)格布局。

下面來看看我們的主模塊的構造函數(shù)代碼,來感受一下上面的結(jié)構設計。

  1. public SwingTest()  
  2.  {  
  3. // 初始化所有子模塊  
  4. MenuTest menuTest = new MenuTest();  
  5. LeftPanel leftPanel = new LeftPanel();  
  6. RightPanel rightPanel = new RightPanel();  
  7. BottomPanel bottomPanel = new BottomPanel();  
  8. CenterPanel centerPanel = new CenterPanel();  
  9. // 設置主框架的布局  
  10. Container c = this.getContentPane();  
  11. // c.setLayout(new BorderLayout())  
  12. this.setJMenuBar(menuTest);  
  13. c.add(leftPanel,BorderLayout.WEST);  
  14. c.add(rightPanel,BorderLayout.EAST);  
  15. c.add(centerPanel,BorderLayout.CENTER);  
  16. c.add(bottomPanel,BorderLayout.SOUTH);  
  17. setSize(700,500);  
  18. setTitle("Swing 組件大全簡體版");  
  19. // 隱藏frame的標題欄,此功暫時關閉,以方便使用window事件  
  20. // setUndecorated(true);  
  21. setLocation(200,150);  
  22. show();   

五.事件模型

在Swing 中每個組件都可觸發(fā)事件,一旦觸發(fā)事件會被一個或多個Listener(監(jiān)聽器)接收。不同類型的事件分別由個別的class表示。事件發(fā)生點可以和處理事件的代碼分開。

要想處理事件,只要產(chǎn)生Listener對象,并調(diào)用組件的addXXXListener()方法注冊事件。我們大部分是通過繼承事件接口來處理事件的。但是繼承Java接口我們必須實現(xiàn)出接口中的所有方法。有些接口包含了大量的函數(shù),如果要一個個實現(xiàn)是件很麻煩的事件上,Java中定義了相應接口的 Adapter接配器類來解決這種情況。接配器類已經(jīng)幫我們實現(xiàn)了接口的所有方法,而我們只要繼承接配器就可在代碼內(nèi)做我們想做的事情。也即只要實現(xiàn)或覆寫我們想要實現(xiàn)的方法。

下面我們還是以主模塊為例,來處理關閉窗口事件。

  1. // 利用無名內(nèi)隱類,增加窗口事件  
  2. this.addWindowListener(new WindowAdapter()  
  3. {  
  4. public void WindowClosing(WindowEvent e)  
  5. {  
  6. // 釋放資源,退出程序  
  7. dispose();  
  8. System.exit(0);  
  9. }  

六.總結(jié)

好了,我們來回顧一個我們的上面的內(nèi)容:設計的思路,容器,嵌板,布局管理器, Swing組件大全的事件。

大家明白了為什么做項目能快速提高自己水平了吧。其實上面的方法原理和做項目差不多,任何事只要經(jīng)過自己的大腦思考,親手操作,想忘記并不是那么容易的了。相信看了本文和代碼再輔以相關的書籍介紹,大家對Swing處理會有一定的感性理解了。

開始動手吧。發(fā)揮你的天才思維,自己設計一個更好的Swing組件大全吧。當然你也可在本程序的基礎上完善其中更復雜的功能。比如:把樹形列表內(nèi)容用window文件資源器代替,把表格的處理和數(shù)據(jù)庫相連接或和相關數(shù)據(jù)連接,讓文本區(qū)可顯示圖片。。。。。哦,天啊。說不定一個好的產(chǎn)品也會因此誕生。

再次強調(diào)開始之前請先設計你的界面,畫出你的程序結(jié)構圖。即使再小的程序也請你大概勾一個它的輪廓。

【編輯推薦】

  1. 概述Swing大多數(shù)控件
  2. GUI程序與Swing中的線程
  3. 淺析Swing.SWT和AWT的區(qū)別
  4. AWT和Swing的區(qū)別
  5. 淺談Swing中提供了JOptionPane
責任編輯:佚名 來源: 電子工業(yè)出版社
相關推薦

2012-04-14 20:47:45

Android

2012-06-25 09:37:24

Web

2021-06-09 08:15:50

volatileJava開發(fā)

2020-06-11 18:35:23

C++編程語言

2012-11-08 17:33:53

智慧云

2015-01-06 09:31:35

2009-10-29 16:32:34

Oracle表空間

2010-05-21 17:32:07

IIS服務器

2012-09-10 13:42:55

PHP項目管理

2021-04-26 11:18:15

FedoraLinuxBug

2021-06-02 15:30:12

Synchronize并發(fā)多線程

2011-09-07 22:59:07

聯(lián)想一體機

2022-05-20 12:14:50

ZuulSpringClou

2010-05-10 15:31:35

Unix文件

2012-07-10 09:14:51

Web

2017-11-02 15:28:52

2009-09-09 09:23:37

服務器穩(wěn)定性

2017-11-02 14:39:54

2021-07-28 14:15:51

漏洞懸賞平臺漏洞谷歌
點贊
收藏

51CTO技術棧公眾號