導航:首頁 > 編程語言 > javagui基礎

javagui基礎

發布時間:2023-07-27 19:34:05

java實現GUI編程基本方法都有那些

其實無論在什麼平台下,GUI應用程序的基本開發方法都是相似的。一般都包括下面這樣四個步驟:

①創建容器

首先要創建一個GUI應用程序,需要創建一個用於容納所有其它GUI組件元素的載體,Java中稱為容器。典型的包括窗口(Window)、框架(Frame/JFrame)、對話框(Dialog/JDialog)、面板(Panel/JPanel)等。只有先創建了這些容器,其它界面元素如按鈕(Button/JButton)、標簽(Label/JLabel)、文本框(TextField/JTextField)等才有地方放。

②添加組件

為了實現GUI應用程序的功能,為了與用戶交換,需要在容器上添加各種組件/控制項。這需要根據具體的功能要求來決定用什麼組件。例如,如果需要提示信息,可用標簽(Label/JLabel);如果需要輸入少量文本,可用文本框(TextField/JTextField);如果需要輸入較多文本,可用文本區域(TextArea/JTextArea);如果需要輸入密碼,可用密碼域(JPasswordField)等等。

③安排組件
與傳統的Windows環境下的GUI軟體開發工具不同,為了更好地實現跨平台,Java程序中各組件的位置、大小一般不是以絕對量來衡量,而是以相對量來衡量。例如有時候,程序的組件的位置是按"東/East"、"西/West"、"南/South"、"北/North"、"中 /Center"這種方位來標識的。因此,在組織界面時,除了要考慮所需的組件種類外,還需要考慮如何安排這些組件的位置與大小。這一般是通過設置布局管理器(Layout Manager)及其相關屬性來實現的。事實上上述按方位來安排組件就是採用了Java中多種布局管理器里的BorderLayout布局管理器。

④處理事件

為了完成一個GUI應用程序所應具備的功能,除了適當地安排各種組件產生美觀的界面外,還需要處理各種界面元素事件,以便真正實現與用戶的交換,完成程序的功能。在Java程序中這一般是通過實現適當的事件監聽者介面來完成的。比如如果需要響應按鈕事件,就需要實現 ActionListener監聽者介面;如果需要響應窗口事件,就需要實現WindowListener監聽者介面。

② java中的GUI是什麼

GUI 是 Graphical User Interface 的縮寫,即「圖復形使用制者介面」。在傳統的操作系統 MS-DOS 文字模式下,屏幕上顯示的是單調的文字介面,使用者必須透過鍵盤輸入指令,才能操作計算機。麻煩的是如果你的英文不好,光是背指令,就夠讓你頭痛了。
所幸, Windows 95 以後的版本中,GUI 的操作環境以圖形及窗口方式顯示,使用者只要用滑鼠進行操作,英文再怎麼不行,照樣可以看圖標找到需要的指令來進行操作。所以 GUI 介面的親和性設計,可說是操作系統設計上的一大突破

③ 進行Java基本的GUI設計需要用到的包是什麼

java入門教程《21天學通java2》第三版
《Java編程思想》(thinking in java)第三版
TOMCAT HOME是指安裝tomcat的主目錄,並非是說目錄的名字就叫「TOMCAT HOME」。

JAVA編程詳解
Think in JAVA(有點難度,推薦在熟悉之後再看)
剛開始其實只要是基礎的都能看,我給你個好的JAVA書籍下載站點:

學習一門新的知識,不可能指望只看一本,或者兩本書就能夠完全掌握。需要有一個循序漸進的閱讀過程。我推薦Oreilly出版的Java系列書籍。

在這里我只想補充一點看法,很多人學習Java是從《Thinking in Java》這本書入手的,但是我認為這本書是不適合初學者的。我認為正確的使用這本書的方法應該是作為輔助的讀物。《Thinking in Java》並不是在完整的介紹Java的整個體系,而是一種跳躍式的寫作方法,是一種類似tips的方法來對Java很多知識點進行了深入的分析和解釋。

對於初學者來說,最好是找一本Java入門的書籍,但是比較完整的循序的介紹Java的語法,面向對象的特性,核心類庫等等,在看這本書的同時,可以同步來看《Thinking in Java》,來加深對Java的理解和原理的運用,同時又可以完整的了解Java的整個體系。

對於Java的入門書籍,蔡學鏞推薦的是Oreilly的《Exploring Java, 2nd Edition》 或者《Java in a Nutshell,2nd Edition(針對C++背景)》,我並沒有看過這兩本書。其實我覺得電子工業出版社的《Java 2編程詳解》或者《Java 2從入門到精通》就很不錯。

在所有的Java書籍當中,其實最最有用的,並不是O'reilly的 Java Serials,真正最最有用處是JDK的Documentation!幾乎你想獲得的所有的知識在Documentation裡面全部都有,其中最主要的部分當然是Java基礎類庫的API文檔,是按照package來組織的,對於每一個class都有詳細的解釋,它的繼承關系,是否實現了某個介面,通常用在哪些場合,還可以查到它所有的public的屬性和方法,每個屬性的解釋,意義,每個方法的用途,調用的參數,參數的意義,返回值的類型,以及方法可能拋出的異常等等。可以這樣來說,所有關於Java編程方面的書籍其實都不過是在用比較通俗易懂的語言,和良好的組織方式來介紹Documentation裡面的某個package裡麵包含的一些類的用法而已。所以萬變不離其宗,如果你有足夠的能力來直接通過Documentation來學習Java的類庫,那麼基本上就不需要看其他的書籍了。除此之外,Documentation也是編程必備的手冊,我的桌面上有三個Documentation的快捷方式,分別是J2SDK1.4.1的Documentation,Servlet2.3的Documentation和J2SDKEE1.3.1的Documentation。有了這個三個Documentation,什麼其他的書籍都不需要了。

對於Java Web 編程來說,最核心的是要熟悉和掌握HTTP協議,這個就和Java無關了,在熟悉HTTP協議之後,就需要熟悉Java的實現HTTP協議的類庫,也就是Servlet API,所以最重要的東西就是Servlet API。當然對於初學者而言,直接通過Servlet API來學習Web編程有很大的難度,我推薦O'reilly的《Java Server Pages 》這本書來學習Web 編程。

EJB的書籍當中,《Enterprise JavaBeans, 2nd Edition》是一本很不錯的書, EJB的學習門檻是比較高,入門很難,但是這本書完全降低了學習的難度,特別重要的一點是,EJB的學習需要結合一種App Server的具體實現,所以在學習EJB的同時,必須同步的學習某種App Server,而這本書相關的出了三本書,分別是Weblogic6.1,Websphere4.0和JBoss3.0上面部署書中例子的實做。真是既有理論,又有實踐。在學習EJB的同時,可以邊看邊做,EJB的學習會變得很輕松。

但是這本書也有一個問題,就是版本比較舊,主要講EJB1.1規范和部分EJB2.0的規范。而Ed Roman寫的《Mastering EJB 2.0》這本書完全是根據EJB2.0規范寫的,深入淺出,覆蓋了EJB編程的各個方面,並且還有很多編程經驗tips,也是學習EJB非常推薦的書籍之一。

如果是結合Weblogic來學習J2EE的話,《J2EE應用與BEA Weblogic Server》絕對是首選讀物,雖然是講述的Weblogic6.0,仍然值得購買,這本書是BEA官方推薦的教材,作者也是BEA公司的工程師。現在中文版已經隨處可見了。這本書結合Weblogic介紹了J2EE各個方面的技術在Weblogic平台上的開發和部署,實踐指導意義非常強。

在掌握了Java平台基礎知識和J2EE方面的知識以後,更進一步的是學習如何運用OO的方法進行軟體的設計,那麼就一定要學習「設計模式」。Sun公司出版了一本《J2EE核心模式》,是每個開發Java企業平台軟體的架構師必備的書籍。這本書全面的介紹了J2EE體系架構的各種設計模式,是設計師的必讀書籍。

Java Learning Path(三)過程篇

每個人的學習方法是不同的,一個人的方法不見得適合另一個人,我只能是談自己的學習方法。因為我學習Java是完全自學的,從來沒有問過別人,所以學習的過程基本上完全是自己摸索出來的。我也不知道這種方法是否是比較好的方法,只能給大家提供一點參考了。

學習Java的第一步是安裝好JDK,寫一個Hello World, 其實JDK的學習沒有那麼簡單,關於JDK有兩個問題是很容易一直困擾Java程序員的地方:一個是CLASSPATH的問題,其實從原理上來說,是要搞清楚JRE的ClassLoader是如何載入Class的;另一個問題是package和import問題,如何來尋找類的路徑問題。把這兩個問題摸索清楚了,就掃除了學習Java和使用JDK的最大障礙。推薦看一下王森的《Java深度歷險》,對這兩個問題進行了深入的探討。

第二步是學習Java的語法。Java的語法是類C++的,基本上主流的編程語言不是類C,就是類C++的,沒有什麼新東西,所以語法的學習,大概就是半天的時間足夠了。唯一需要注意的是有幾個不容易搞清楚的關鍵字的用法,public,protected,private,static,什麼時候用,為什麼要用,怎麼用,這可能需要有人來指點一下,我當初是完全自己琢磨出來的,花了很久的時間。不過後來我看到《Thinking in Java》這本書上面是講了這些概念的。

第三步是學習Java的面向對象的編程語言的特性的地方。比如繼承,構造器,抽象類,介面,方法的多態,重載,覆蓋,Java的異常處理機制。對於一個沒有面向對象語言背景的人來說,我覺得這個過程需要花很長很長時間,因為學習Java之前沒有C++的經驗,只有C的經驗,我是大概花了一個月左右吧,才徹底把這些概念都搞清楚,把書上面的例子反復的揣摩,修改,嘗試,把那幾章內容反復的看過來,看過去,看了不下5遍,才徹底領悟了。不過我想如果有C++經驗的話,應該一兩天時間足夠了。那麼在這個過程中,可以多看看《Thinking in Java》這本書,對面向對象的講解非常透徹。可惜的是我學習的時候,並沒有看到這本書,所以自己花了大量的時間,通過自己的嘗試和揣摩來學會的。

第四步就是開始熟悉Java的類庫。Java的基礎類庫其實就是JDK安裝目錄下面jre\lib\rt.jar這個包。學習基礎類庫就是學習rt.jar。基礎類庫裡面的類非常非常多。據說有3000多個,我沒有統計過。但是真正對於我們來說最核心的只有4個,分別是
java.lang.*;
java.io.*;
java.util.*;
java.sql.*;

這四個包的學習,每個包的學習都可以寫成一本厚厚的教材,而O'reilly也確實是這樣做的。我覺得如果時間比較緊,是不可能通過讀四本書來學習。我覺得比較好的學習方法是這樣的:
首先要通讀整個package的框架,了解整個package的class,interface,exception的構成,最好是能夠找到介紹整個包框架的文章。這些專門介紹包的書籍的前幾章應該就是這些總體的框架內容介紹。

對包整體框架的把握並不是要熟悉每個類的用法,記住它有哪些屬性,方法。想記也記不住的。而是要知道包有哪些方面的類構成的,這些類的用途是什麼,最核心的幾個類分別是完成什麼功能的。我在給人培訓的時候一般是一次課講一個包,所以不可能詳細的介紹每個類的用法,但是我反復強調,我給你們講這些包的不是要告訴你們類的方法是怎麼調用的,也不要求你們記住類的方法調用,而是要你們了解,Java給我們提供了哪些類,每個類是用在什麼場合,當我遇到問題的時候,我知道哪個類,或者哪幾個類的組合可以解決我的問題,That'all!,當我們具體寫程序的時候,只要你知道該用哪個類來完成你的工作就足夠了。編碼的時候,具體的方法調用,是邊寫代碼,邊查Documentation,所有的東西都在Documentation裡面,不要求你一定記住,實際你也記不住3000多個類的總共將近10萬個方法調用。所以對每個包的總體框架的把握就變得極為重要。

第五步,通過上面的學習,如果學的比較扎實的話,就打好了Java的基礎了,剩下要做的工作是掃清Documentation裡面除了上面4個包之外的其他一些比較有用處的類。相信進展到這一步,Java的自學能力已經被培養出來了,可以到了直接學習Documentation的水平了。除了要做GUI編程之外,JDK裡面其他會有用處的包是這些:
java.text.*;
java.net.*;
javax.naming.*;
這些包裡面真正用的比較多的類其實很少,只有幾個,所以不需要花很多時間。

第六步,Java Web 編程
Web編程的核心是HTTP協議,HTTP協議和Java無關,如果不熟悉HTTP協議的話,雖然也可以學好Servlet/JSP編程,但是達不到舉一反三,一通百通的境界。所以HTTP協議的學習是必備的。如果熟悉了HTTP協議的話,又有了Java編程的良好的基礎,學習Servlet/JSP簡直易如反掌,我學習Servlet/JSP就用了不到一周的時間,然後就開始用JSP來做項目了。

在Servlet/JSP的學習中,重頭仍然是Servlet Documentation。Servlet API最常用的類很少,花比較少的時間就可以掌握了。把這些類都看一遍,多寫幾個例子試試。Servlet/JSP編程本質就是在反復調用這些類來通過HTTP協議在Web Server和Brower之間交談。另外對JSP,還需要熟悉幾個常用JSP的標記,具體的寫法記不住的話,臨時查就是了。

此外Java Web編程學習的重點要放在Web Application的設計模式上,如何進行業務邏輯的分析,並且進行合理的設計,按照MVC設計模式的要求,運用Servlet和JSP分別完成不同的邏輯層,掌握如何在Servlet和JSP之間進行流程的控制和數據的共享,以及Web Application應該如何配置和部署。

第七步,J2EE編程
以上的學習過程如果是比較順利的話,進行到這一步,難度又陡然提高。因為上面的知識內容都是只涉及一個方面,而像EJB,JMS,JTA等核心的J2EE規范往往是幾種Java技術的綜合運用的結晶,所以掌握起來難度比較大。

首先一定要學習好JNDI,JNDI是App Server定位伺服器資源(EJB組件,Datasouce,JMS)查找方法,如果對JNDI不熟悉的話,EJB,JMS這些東西幾乎學不下去。JNDI其實就是javax.naming.*這個包,運用起來很簡單。難點在於伺服器資源文件的配置。對於伺服器資源文件的配置,就需要看看專門的文檔規范了,比如web.xml的寫法,ejb-jar.xml的寫法等等。針對每種不同的App Server,還有自己的服務資源配置文件,也是需要熟悉的。

然後可以學習JTA,主要是要理解JTA對於事務的控制的方法,以及該在什麼場合使用JTA。這里可以簡單的舉個例子,我們知道一般情況可以對於一個資料庫連接進行事務控制(conn.setAutoCommit(false),....,conn.commit()),做為一個原子操作,但是假設我的業務需求是要把對兩個不同資料庫的操作做為一個原子操作,你能做的到嗎?這時候只能用JTA了。假設操作過程是先往A資料庫插一條記錄,然後刪除B資料庫另一個記錄,我們自己寫代碼是控制不了把整個操作做為一個原子操作的。用JTA的話,由App Server來完成控制。

在學習EJB之前要學習對象序列化和RMI,RMI是EJB的基礎。接著學習JMS和EJB,對於EJB來說,最關鍵是要理解EJB是如何通過RMI來實現對遠端對象的調用的,以及在什麼情況下要用到EJB。

在學習完EJB,JMS這些東西之後,你可能會意識到要急不可待學習兩個領域的知識,一個是UML,另一個是Design Pattern。Java企業軟體的設計非常重視框架(Framework)的設計,一個好的軟體框架是軟體開發成功的必要條件。在這個時候,應該開始把學習的重點放在設計模式和框架的學習上,通過學習和實際的編程經驗來掌握EJB的設計模式和J2EE的核心模式。

J2EE規范裡面,除了EJB,JMS,JTA,Servlet/JSP,JDBC之外還有很多很多的企業技術,這里不一一進行介紹了。

另外還有一個最新領域Web Services。Web Services也完全沒有任何新東西,它像是一種黏合劑,可以把不同的服務統一起來提供一個統一的調用介面,作為使用者來說,我只要獲得服務提供者給我的WSDL(對服務的描述),就夠了,我完全不知道伺服器提供者提供的服務究竟是EJB組件,還是.Net組件,還是什麼CORBA組件,還是其他的什麼實現,我也不需要知道。Web Services最偉大的地方就在於通過統一的服務提供方式和調用方式,實現了整個Internet服務的共享,是一個非常令人激動的技術領域。Web Services好像目前還沒有什麼很好的書籍,但是可以通過在網路上面查資料的方式來學習。

Java Learning Path(四) 方法篇

Java作為一門編程語言,最好的學習方法就是寫代碼。當你學習一個類以後,你就可以自己寫個簡單的例子程序來運行一下,看看有什麼結果,然後再多調用幾個類的方法,看看運行結果,這樣非常直觀的把類給學會了,而且記憶非常深刻。然後不應該滿足把代碼調通,你應該想想看如果我不這樣寫,換個方式,再試試行不行。記得哪個高人說過學習編程就是個破壞的過程,把書上的例子,自己學習Documentation編寫的例子在運行通過以後,不斷的嘗試著用不同的方法實現,不斷的嘗試破壞代碼的結構,看看它會有什麼結果。通過這樣的方式,你會很徹底的很精通的掌握Java。

舉個例子,我們都編過Hello World

public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World");
}
}

很多初學者不是很理解為什麼main方法一定要這樣來定義public static void main(String[] args),能不能不這樣寫?包括我剛學習Java的時候也有這樣的疑問。想知道答案嗎?很簡單,你把main改個名字運行一下,看看報什麼錯誤,然後根據出錯信息進行分析;把main的public取掉,在試試看,報什麼錯誤;static去掉還能不能運行;不知道main方法是否一定要傳一個String[]數組的,把String[]改掉,改成int[],或者String試試看;不知道是否必須寫args參數名稱的,也可以把args改成別的名字,看看運行結果如何。

我當初學習Java的時候就是這樣做的,把Hello World程序反復改了七八次,不斷運行,分析運行結果,最後就徹底明白為什麼了main方法是這樣定義的了。

此外,我對於staic,public,private,Exception,trycatch 等等等等一開始都不是很懂,都是把參考書上面的例子運行成功,然後就開始破壞它,不斷的根據自己心裏面的疑問來重新改寫程序,看看能不能運行,運行出來是個什麼樣子,是否可以得到預期的結果。這樣雖然比較費時間,不過一個例子程序這樣反復破壞幾次之後。我就對這個相關的知識徹底學通了。有時候甚至故意寫一些錯誤的代碼來運行,看看能否得到預期的運行錯誤。這樣對於編程的掌握是及其深刻的。

其中特別值得一提的是JDK有一個非常棒的調試功能,-verbose
java –verbose
javac –verbose 以及其它很多JDK工具都有這個選項
-verbose 可以顯示在命令執行的過程中,JVM都依次載入哪裡Class,通過這些寶貴的調試信息,可以幫助我們分析出JVM在執行的過程中都幹了些什麼。

另外,自己在學習過程中,寫的很多的這種破壞常式,應該有意識的分門別類的保存下來,在工作中積累的典型常式也應該定期整理,日積月累,自己就有了一個代碼庫了。遇到類似的問題,到代碼庫裡面 Copy & Paste ,Search & Replace,就好了,極大提高了開發速度。最理想的情況是把一些通用的常式自己再抽象一層,形成一個通用的類庫,封裝好。那麼可復用性就更強了。

所以我覺得其實不是特別需要常式的,自己寫的破壞常式就是最好的例子,如果你實在對自己寫的代碼不放心的話,我強烈推薦你看看JDK基礎類庫的Java源代碼。在JDK安裝目錄下面會有一個src.zip,解開來就可以完整的看到整個JDK基礎類庫,也就是rt.jar的Java源代碼,你可以參考一下Sun是怎麼寫Java程序的,規范是什麼樣子的。我自己在學習Java的類庫的時候,當有些地方理解的不是很清楚的時候,或者想更加清晰的理解運作的細節的時候,往往會打開相應的類的源代碼,通過看源代碼,所有的問題都會一掃而空。

Java Learning Path(五)資源篇

1、 (英文)
Sun的Java網站,是一個應該經常去看的地方。不用多說。

2、
IBM的developerWorks網站,英語好的直接去英文主站點看。這里不但是一個極好的面向對象的分析設計網站,也是Web Services,Java,Linux極好的網站。強烈推薦!!!

3、 (英文)
關於Java很多新技術的討論和新聞。想多了解Java的方方面面的應用,這里比較好。

4、
BEA的開發者園地,BEA作為最重要的App Server廠商,有很多獨到的技術,在Weblogic上做開發的朋友不容錯過。

5、
灰狐動力網站,一個專業的中間件網站,雖然不是專業的Java網站,但是在J2EE企業應用技術方面有深厚的造詣。

6、 (英文)
TheServerSide是一個著名的專門面向Java Server端應用的網站。

7、
Java研究組織,有很多優秀的Java方面的文章和教程,特別是在JDO方面的文章比較豐富。

8、
JSP技術網站,有相當多的Java方面的文章和資源。

9、
Jdon論壇,是一個個人性質的中文J2EE專業技術論壇,在眾多的Java的中文論壇中,Jdon一個是技術含量非常高,帖子質量非常好的論壇。

10、
SourgeForge是一個開放源代碼軟體的大本營,其中也有非常非常豐富的Java的開放源代碼的著名的軟體。
參考資料:jubie

④ 編寫java的「靜態」GUI界面(無事件驅動功能)通常必須包含四個基本步驟,是哪四個基本步驟

  1. 創建frame

  2. 設置frame窗體布局(流式布局等)

  3. 加入所需的控制項(按鈕、文本框等)

  4. 設置frame窗體大小,出現的位置,並將窗體設為可見

⑤ java編程中,GUI界面的一般框架有什麼希望大神給寫個程序實例,程序內容包括布局的應用,多個

java GUI一般,通過AWT,SWING 實現

其餘比較流行的是SWT,但是它不是官方庫, 並且不能跨平台

//注意:

Swing, 所以很多不涉及界面組件的一些類比如布局 等Swing也可以使用

但是組件,最好不要混用, 容易出現一些組件疊加,等顯示錯誤 比如JButton TextField等混用


//參考代碼

下面使用Swing組件來實現

importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;

//本類實現了ActionListener介面.一個ActionListener可以響應JMenuItem和JButton的動作
//本類實現FocusListener介面,一個FocusListener可以響應JTextField,JButton等
//JButton響應多個事件介面
,FocusListener{
privateJTextFieldjtf1;
privateJTextFieldjtf2;
privateJTextFieldjtf3;
privateJButtonjb1;

publicMyGuiFrame(){
//----------窗口屬性的設置----------
setTitle("窗口應用程序");//窗口標題
setSize(380,120);//窗口大小
setLocationRelativeTo(null);//窗口居於屏幕中央
setDefaultCloseOperation(EXIT_ON_CLOSE);//點擊關閉窗口後退出jvm虛擬機
getContentPane().setLayout(newBorderLayout(5,3));//邊界布局,水平間距5,垂直間距3

//菜單欄組件初始化
initMenu();

//主要面板的初始化
initPanel();
}

privatevoidinitPanel(){
JPaneljp=newJPanel(newFlowLayout(FlowLayout.CENTER));//流式布局
jtf1=newJTextField(8);
jtf1.addFocusListener(this);//添加焦點響應
JLabeljl=newJLabel("+");
jtf2=newJTextField(8);
jtf2.addFocusListener(this);
jb1=newJButton("=");
jb1.addActionListener(this);//添加動作響應
jb1.addFocusListener(this);//添加焦點響應

jtf3=newJTextField(8);
jtf3.setEditable(false);

jp.add(jtf1);
jp.add(jl);
jp.add(jtf2);
jp.add(jb1);
jp.add(jtf3);
getContentPane().add(jp,BorderLayout.CENTER);

}

privatevoidinitMenu(){//菜單欄的初始化和設置
JMenuBarjmb=newJMenuBar();
JMenujm1=newJMenu("系統");
JMenuItemjmi101=newJMenuItem("退出");
jmi101.addActionListener(this);//添加動作響應
JMenujm2=newJMenu("幫助");
JMenuItemjmi201=newJMenuItem("功能說明");
jmi201.addActionListener(this);
jm1.add(jmi101);
jm2.add(jmi201);
jmb.add(jm1);
jmb.add(jm2);
setJMenuBar(jmb);//設置菜單欄
}

//main方法,創建對象窗口,並且設置可見
publicstaticvoidmain(String[]args){
newMyGuiFrame().setVisible(true);
}

//動作響應處理
publicvoidactionPerformed(ActionEvente){
Stringcmd=e.getActionCommand();//根據命令來區分不同的操作
if(cmd.equals("退出")){
System.exit(0);
}
if(cmd.equals("功能說明")){
JOptionPane.showMessageDialog(this,"加法");
}
if(cmd.equals("=")){

Strings1=jtf1.getText().trim();
Strings2=jtf2.getText().trim();
if(s1.equals("")){
s1="0";
}
if(s2.equals("")){
s2="0";
}
doublenum1=Double.parseDouble(s1);//從字元串轉小數
doublenum2=Double.parseDouble(s2);
jtf3.setText((num1+num2)+"");//數字類型轉字元串類型

}
}

//焦點響應處理
publicvoidfocusGained(FocusEvente){//獲得焦點
JComponentcmp=(JComponent)e.getComponent();//根據事件來源組件來區分不同的操作
if(cmp==jtf1||cmp==jtf2){
cmp.setBorder(BorderFactory.createLineBorder(Color.BLUE));//設置邊框
}
if(cmp==jb1){
jb1.setForeground(Color.RED);//設置文字顏色
}
}

publicvoidfocusLost(FocusEvente){//失去焦點
JComponentcmp=(JComponent)e.getComponent();
if(cmp==jtf1||cmp==jtf2){
cmp.setBorder(BorderFactory.createLineBorder(Color.GRAY));
}
if(cmp==jb1){
jb1.setForeground(Color.BLACK);
}
}

}


運行效果如圖

⑥ Java GUI中有哪幾種常用的布局方式,各有什麼特點

Java GUI中有哪幾種常用的布局方式,各有什麼特點?

FlowLayout流式布局
BorderLayout邊界布局
GridLayout網格布局
CardLayout卡片布局
GridBagLayout網路包布局

java 的布局方式有什麼特點

布局?Java GUI布局吧?

AWT/Swing/SWT三種.

AWT 概述

Abstract Windows Toolkit(AWT)是最原始的 Java GUI 工具包。AWT 的主要優點是,它在 Java 技術的每個版本上都成為了一種標准配置,包括早期的 Web 瀏覽器中的 Java 實現;另外它也非常穩定。這意味著我們不需要單獨安裝這個工具包,在任何一個 Java 執行環境中都可以使用它,這一點正是我們所希望的特性。

AWT 是一個非常簡單的具有有限 GUI 元件、布局管理器和事件的工具包(參見 清單 1、清單 2 和 清單 3)。這是因為 Sun 公司決定為 AWT 使用一種最小公分母(LCD)的方法。因此它只會使用為所有 Java 主機環境定義的 GUI 元件。最終的結果非常不幸,有些經常使用的元件,例如表、樹、進度條等,都不支援。對於需要更多飢陪元件型別的應用程式來說,我們需要從頭開始建立這些元件。這是一個很大的負擔。

Swing 概述

Java Swing 是 Java Foundation Classes(JFC)的一部分,它是試圖解決 AWT 缺點的一個嘗試。在 Swing 中,Sun 開發了一個經爛渣蠢過仔細設計的、靈活而強大的 GUI 工具包。不幸的是,這意味著我們又要花一些時間來學習 Swing 了,對於常見的情況來說,Swing 有些太復雜了。

Swing 是在 AWT 元件基礎上構建的。所有 Swing 元件實際上也是 AWT 的一部分。Swing 使用了 AWT 的事件模型和支援類,例如 Colors、Images 和 Graphics。Swing 元件、布局管理器以及事件總結如下(參見 清單 4、清單 5 和 清單 6)。正如您可以看到的一樣,這些元件集比 AWT 提供的元件集更為廣泛,與 SWT 元件集相比也毫不遜色。

SWT 概述

與 AWT 的概念相比,SWT 是一個低階的 GUI 工具包。JFace 是一組用來簡化使用 SWT 構建 GUI 的增強元件和工具服務。SWT 的構建者從 AWT 和 Swing 實現中學習了很多經驗,他們試圖構建一個集二者優點於一體而沒有二者的缺點的系統。從很多方面來說,他們已經成功了。

SWT 也是基於一個對等體實現的,在這一點上它與 AWT 非常類似。它克服了 AWT 所面臨的 LCD 的問題,方法如下:定義了一組控制元件,它們可以用來構建大部分辦公應用程式或開發者工具,然後可以按照逐個主機的原則,為特定主機所沒有提供的控制元件建立模擬控制元件(這與 Swing 類似)。對於大部分現代主機來說,幾乎所有的控制元件都是基於本地對等體的。這意味著基於 SWT 的 GUI 既具有主機外觀,又具有主機的效能。這樣就避免了使用 AWT 和 Swing 而引起的大部分問題。特定的主機具有一些低階功能控制元件,因此 SWT 提供了擴充(通常是模擬的)版本(通常使用 「C」 作為名字中的第一個字母),從而可以產生更一致的行為。

發動機的布局方式有哪幾種,各有什麼優勢

發動機布局方式
前置前驅 一般中低轎車用 部分抵擋梁好跑車
前置後驅 一般中高檔轎車用 部分中低檔跑車
前置全驅 一般高階豪華車用 部分跑車
中置後驅 一般高檔高階豪華跑車用 F1
中置全驅 一般高檔高階豪華跑車用
後置後驅 一般大型客車用 保時捷高階高檔豪華跑車
後置全驅 保時捷高階高檔豪華跑車
發動機 排列方式
直列 L型 一般用於四缸發動機 少數六缸發動機 像寶馬
V型發動機 一般六缸以上發動機用
W型發動機 一般12缸以上發動機用 比如大眾途銳 奧迪A8 布加迪
H型發動機 一般跑車用 比如保時捷 斯巴魯

java swing 布局方式有哪幾種

BorderLayout,
BoxLayout,
CardLayout,
DefaultMenuLayout,
FlowLayout,
GridBagLayout,
GridLayout,
GroupLayout
swing里常用的也有這些,至於每個具體的功能自己查一下API就可以了。

常用的離合器有哪幾種?各有什麼特點?

一、變極對數調速方法
這種調速方法是用改變定子繞組的接紅方式來改變籠型電動機定子極對數達到調速目的,特點如下:
1、具有較硬的機械特性,穩定性良好;
2、無轉差損耗,效率高;
3、接線簡單、控制方便、價格低;
4、有級調速,級差較大,不能獲得平滑調速;
5、可以與調壓調速、電磁轉差離合器配合使用,獲得較高效率的平滑調速特性。
本方法適用於不需要無級調速的生產機械,如金屬切削機床、升降機、起重裝置、風機、水泵等。
二、變頻調速方法
變頻調速是改變電動機定子電源的頻率,從而改變其同步轉速的調速方法。變頻調速系統主要裝置是提供變頻電源的變頻器,變頻器可分成交流-直流-交流變頻器和交流-交流變頻器兩大類,目前國內大都使用交-直-交變頻器。其特點:
1、效率高,調速過程中沒有附加損耗;
2、應用范圍廣,可用於籠型非同步電動機;
3、調速范圍大,特性硬,精度高;
4、技術復雜,造價高,維護檢修困難。
5、本方法適用於要求精度高、調速效能較好場合。
三、串級調速方法
串級調速是指繞線式電動機轉子迴路中串入可調節的附加電勢來改變電動機的轉差,達到調速的目的。大部分轉差功率被串入的附加電勢所吸收,再利用產生附加的裝置,把吸收的轉差功率返回電網或轉換能量加以利用。根據轉差功率吸收利用方式,串級調速可分為電機串級調速、機械串級調速及閘流體串級調速形式,多採用閘流體串級調速,其特點為:
1、可將調速過程中的轉差損耗回饋到電網或生產機械上,效率較高;
2、裝置容量與調速范圍成正比,投資省,適用於調速范圍在額定轉速70%-90%的生產機械上;
3、調速裝置故障時可以切換至全速執行,避免停產;
4、閘流體串級調速功率因數偏低,諧波影響較大。
5、本方法適合於風機、水泵及軋鋼機、礦井提升機、擠壓機上使用。
四、繞線式電動機轉子串電阻調速方法
繞線式非同步電動機轉子串入附加電阻,使電動機的轉差率加大,電動機在較低的轉速下執行。串入的電阻越大,電動機的轉速越低。此方法裝置簡單,控制方便,但轉差功率以發熱的形式消耗在電阻上。屬有級調速,機械特性較軟。
五、定子調壓調速方法
當改變電動機的定子電壓時,可以得到一組不同的機械特性曲線,從而獲得不同轉速。由於電動機的轉矩與電壓平方成正比,因此最大轉矩下降很多,其調速范圍較小,使一般籠型電動機難以應用。為了擴大調速范圍,調壓調速應採用轉子電阻值大的籠型電動機,如專供調壓調速用的力矩電動機,或者在繞線式電動機上串聯頻敏電阻。為了擴大穩定執行范圍,當調速在2:1以上的場合應採用反饋控制以達到自動調節轉速目的。
調壓調速的主要裝置是一個能提供電壓變化的電源,目前常用的調壓方式有串聯飽和電抗器、自耦變壓器以及閘流體調壓等幾種。閘流體調壓方式為最佳。調壓調速的特點:
1、調壓調速線路簡單,易實現自動控制;
2、調壓過程中轉差功率以發熱形式消耗在轉子電阻中,效率較低。
3、調壓調速一般適用於100KW以下的生產機械。
六、電磁調速電動機調速方法
電磁調速電動機由籠型電動機、電磁轉差離合器和直流勵磁電源(控制器)三部分組成。直流勵磁電源功率較小,通常由單相半波或全波閘流體整流器組成,改變閘流體的導通角,可以改變勵磁電流的大小。 電磁轉差離合器由電樞、磁極和勵磁繞組三部分組成。電樞和後者沒有機械聯絡,都能自由轉動。電樞與電動機轉子同軸聯接稱主動部分,由電動機帶動;磁極用聯軸節與負載軸對接稱從動部分。當電樞與磁極均為靜止時,如勵磁繞組通以直流,則沿氣隙圓周表面將形成若干對N、S極 *** 替的磁極,其磁通經過電樞。當電樞隨拖動電動機旋轉時,由於電樞與磁極間相對運動,因而使電樞感應產生渦流,此渦流與磁通相互作用產生轉矩,帶動有磁極的轉子按同一方向旋轉,但其轉速恆低於電樞的轉速N1,這是一種轉差調速方式,變動轉差離合器的直流勵磁電流,便可改變離合器的輸出轉矩和轉速。電磁調速電動機的調速特點:
1、裝置結構及控制線路簡單、執行可靠、維修方便;
2、調速平滑、無級調速;
3、對電網無諧影響;
4、速度失大、效率低。
5、本方法適用於中、小功率,要求平滑動、短時低速執行的生產機械。
七、液力耦合器調速方法
液力耦合器是一種液力傳動裝置,一般由泵輪和渦輪組成,它們統稱工作輪,放在密封殼體中。殼中充入一定量的工作液體,當泵輪在原動機帶動下旋轉時,處於其中的液體受葉片推動而旋轉,在離心力作用下沿著泵輪外環進入渦輪時,就在同一轉向上給渦輪葉片以推力,使其帶動生產機械運轉。液力耦合器的動力轉輸能力與殼內相對充液量的大小是一致的。在工作過程中,改變充液率就可以改變耦合器的渦輪轉速,作到無級調速,其特點為:
1、功率適應范圍大,可滿足從幾十千瓦至數千千瓦不同功率的需要;
2、結構簡單,工作可靠,使用及維修方便,且造價低;
3、尺寸小,能容大;
4、控制調節方便,容易實現自動控制。
5、本方法適用於風機、水泵的調速。

電氣簡圖連線線的布局方式有哪幾種?

⑴、水平布置:將裝置和元件按行布置,使得其連線線一般成水平布置。
⑵、垂直布置:將裝置或元件按列排列,連線線成垂直布置。
⑶、交叉布置:將相應的元件連線成對稱的布局。

常用的Inter接入方案有哪幾種? 各有什麼特點

電話撥號接入
傳輸介質 : 電話線終端
上行速率 : 512k—640k
下行數率 : 512k-1M
價格水平 : 非常便宜(48元包月)
適用場合 : 個人
穩定性 : 非常不穩定
提供商 : 中國移動、中國聯通
ISDN撥號
傳輸介質 :網路水晶線
上行速率 :640k-2M
下行數率 :1M-2M
價格水平 :便宜(70元左右)
適用場合 :對網路要求不高的個人
穩定性 :趨於穩定
提供商 :中國網通、中國電信、中國鐵通
租用線路(DDN專線接入)
傳輸介質 : MODEM
上行速率 : 1M-10M
下行數率 : 640k
價格水平 : 偏貴(80元包月左右)
適用場合 : 公司、個人上網
穩定性 : 非常穩定
提供商 : 中國鐵通
區域網接入
傳輸介質 : 伺服器
上行速率 : 512k-1M
下行數率 : 640k-2M
價格水平 : 偏貴(90元左右)
適用場合 : 辦公室
穩定性 : 不太穩定
提供商 : 中國移動、中國聯通、中國網通、中國電信
無線接入
傳輸介質 :無線網路卡
上行速率 :1M-5M
下行數率 :512k-1M
價格水平 :貴(120元左右包月)
適用場合 :經常出差或者旅遊的個人
穩定性 : 不穩定
提供商 : 暫無
Cable Modem接入
傳輸介質 :MODEM服務端
上行速率 :10M
下行數率 :1M
價格水平 :便宜
適用場合 :公司、家庭
穩定性 :非常穩定
提供商 :中國網通、中國電信、中國移動、中國聯通
光纖接入
傳輸介質 :光纖電纜
上行速率 :10M-100M
下行數率 :10M
價格水平 :非常貴
適用場合 :IDC/對網路要求極高的人群等穩定性 :最穩定了
提供商 :美國、日本提供商

換流方式有哪幾種,各有什麼特點?

換流就是電流從一條支路換向另一支路的過程.
換流方式有4種.
器件換流,利用全控器件的自關斷能力進行換流.全控型器件採用此換流方式.
電網換流,由電網提供換流電壓,只要把負的電網電壓加到欲關斷的器件上即可.
負載換流,由負載提供換流電壓,當負載為電容性負載即負載電流超前於負載電壓時,可實現負載換流.
強迫換流,設定附加換流電路,給欲關斷的閘流體施加反向電壓換流稱為強迫換流.通常是利用附加電容上的能量實現的,也稱電容換流.

閱讀全文

與javagui基礎相關的資料

熱點內容
iphone6備份密碼 瀏覽:365
微信打碼賺錢安卓軟體 瀏覽:608
蘋果官換機買什麼版本 瀏覽:979
visio數據模型怎麼用 瀏覽:179
關於駕駛的app 瀏覽:92
多線程編程有什麼特點 瀏覽:453
iso文件系統 瀏覽:116
蘋果932攔截騷擾電話 瀏覽:765
盲盒開箱app有哪些 瀏覽:422
win10激活腳本之家 瀏覽:191
魔鬼作坊工具包 瀏覽:185
ae源文件下載 瀏覽:520
如何將照片內容轉換成pdf文件 瀏覽:137
浙里辦app如何更換手機號碼 瀏覽:244
電子資料文件有哪些 瀏覽:241
猥瑣貓表情教程 瀏覽:599
android音頻文件格式 瀏覽:458
漫畫臉app哪裡可以下載 瀏覽:959
購買歡樂升級歡樂豆 瀏覽:282
學習智能機器人用什麼編程最好 瀏覽:655

友情鏈接