国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - Java編程中應用的GUI設計基礎

Java編程中應用的GUI設計基礎

2020-01-08 14:32goldensun JAVA教程

這篇文章主要介紹了Java編程中應用的GUI設計基礎,為一些Java開發CS類型應用的基礎概念知識,需要的朋友可以參考下

早先程序使用最簡單的輸入輸出方式,用戶在鍵盤輸入數據,程序將信息輸出在屏幕上。現代程序要求使用圖形用戶界面(Graphical User Interface,GUI),界面中有菜單、按鈕等,用戶通過鼠標選擇菜單中的選項和點擊按鈕,命令程序功能模塊。本章學習如何用Java語言編寫GUI科學試驗,如何通過GUI實現輸入和輸出。
AWT和Swing

先前用Java編寫GUI程序,是使用抽象窗口工具包AWT(Abstract Window Toolkit).現在多用Swing。Swing可以看作是AWT的改良版,而不是代替AWT,是對AWT的提高和擴展。所以,在寫GUI程序時,Swing和AWT都要作用。它們共存于Java基礎類(Java Foundation Class,JFC)中。

盡管AWT和Swing都提供了構造圖形界面元素的類,但它們的重要方面有所不同:AWT依賴于主平臺繪制用戶界面組件;而Swing有自己的機制,在主平臺提供的窗口中繪制和管理界面組件。Swing與AWT之間的最明顯的區別是界面組件的外觀,AWT在不同平臺上運行相同的程序,界面的外觀和風格可能會有一些差異。然而,一個基于Swing的應用程序可能在任何平臺上都會有相同的外觀和風格。

Swing中的類是從AWT繼承的,有些Swing類直接擴展AWT中對應的類。例如,JApplet、JDialog、JFrame和JWindow。

使用Swing設計圖形界面,主要引入兩個包:

  1. javax.swing包:包含Swing的基本類;
  2. java.awt.event包:包含與處理事件相關的接口和類。

由于Swing太豐富,不可能在一本教科書中給出Swing的全面介紹,但本章所介紹的有關Swing的知識,已足以讓讀者編寫相當精美的GUI程序。
組件和容器

組件(component)是圖形界面的基本元素,用戶可以直接操作,例如按鈕。容器(Container)是圖形界面的的復合元素,容器可以包含組件,例如面板。

Java語言為每種組件都預定義類,程序通過它們或它們的子類各種組件對象,如,Swing中預定義的按鈕類JButton是一種類,程序創建的JButton對象,或JButton子類的對象就是按鈕。Java語言也為每種容器預定義類,程序通過它們或它們的子類創建各種容器對象。例如,Swing中預定義的窗口類JFrame是一種容器類,程序創建的JFrame或JFrame子類的對象就是窗口。

為了統一管理組件和容器,為所有組件類定義超類,把組件的共有操作都定義在Component類中。同樣,為所有容器類定義超類Container類,把容器的共有操作都定義在Container類中。例如,Container類中定義了add()方法,大多數容器都可以用add()方法向容器添加組件。

Component、Container和Graphics類是AWT庫中的關鍵類。為能層次地構造復雜的圖形界面,容器被當作特殊的組件,可以把容器放入另一個容器中。例如,把若干按鈕和文本框分放在兩個面板中,再把這兩個面板和另一些按鈕放入窗口中。這種層次地構造界面的方法,能以增量的方式構造復雜的用戶界面。
事件驅動程序設計基礎

1.事件、監視器和監視器注冊
圖形界面上的事件是指在某個組件上發生用戶操作。例如,用戶單擊了界面上的某個按鈕,就說在這個按鈕上發生了事件,這個按鈕對象就是事件的擊發者。對事件作監視的對象稱為監視器,監視器提供響應事件的處理方法。為了讓監視器與事件對象關聯起來,需要對事件對象作監視器注冊,告訴系統事件對象的監視器。

以程序響應按鈕事件為例,程序要創建按鈕對象,把它添加到界面中,要為按鈕作監視器注冊,程序要有響應按鈕事件的方法。當“單擊按鈕”事件發生時,系統就調用已為這個按鈕注冊的事件處理方法,完成處理按鈕事件的工作。

2.實現事件處理的途征
java語言編寫事件處理程序主要有兩種方案:一個是程序重設handleEvent(Eventevt),采用這個方案的程序工作量稍大一些;另一個方案是程序實現一些系統設定的接口。java按事件類型提供多種接口,作為監視器對象的類需要實現相應的接口,即實現響應事件的方法。當事件發生時,系統內設的handleEvent(Event evt)方法就自動調用監視器的類實現的響應事件的方法。

java.awt.event包中用來檢測并對事件做出反應的模型包括以下三個組成元素:
源對象:事件“發生”這個組件上,它與一組“偵聽”該事件的對象保持著聯系。
監視器對象:一個實現預定義的接口的類的一個對象,該對象的類要提供對發生的事件作處理的方法。
事件對象:它包含描述當事件發生時從源傳遞給監視器的特定事件的信息。

一個事件驅動程序要做的工作除創建源對象和監視器對象之外,還必須安排監視器了解源對象,或向源對象注冊監視器。每個源對象有一個已注冊的監視器列表,提供一個方法能向該列表添加監視器對象。只有在源對象注冊了監視器之后,系統才會將源對象上發生的事件通知監視器對象。

3.事件類型和監視器接口
在java語言中,為了便于系統管理事件,也為了便于程序作監視器注冊,系統將事件分類,稱為事件類型。系統為每個事件類型提供一個接口。要作為監視器對象的類必須實現相應的接口,提供接口規定的響應事件的方法。

再以程序響應按鈕事件為例,JButton類對象button可以是一個事件的激發者。當用戶點擊界面中與button對應的按鈕時,button對象就會產生一個ActionEvent類型的事件。如果監視器對象是obj,對象obj的類是Obj,則類Obj必須實現AWT中的ActionListener接口,實現監視按鈕事件的actionPerformed方法。button對象必須用addActionListener方法注冊它的監視器obj。

程序運行時,當用戶點擊button對象對應的按鈕時,系統就將一個ActionEvent對象從事件激發對象傳遞到監視器。ActionEvent對象包含的信息包括事件發生在哪一個按鈕,以及有關該事件的其他信息。

下表給出有一定代表性的事件類型和產生這些事件的部分Swing組件。實際事件發生時,通常會產生一系列的事件,例如,用戶點擊按鈕,會產生ChangeEvent事件提示光標到了按鈕上,接著又是一個ChangeEvent事件表示鼠標被按下,然后是ActionEvent事件表示鼠標已松開,但光標依舊在按鈕上,最后是ChangeEvent事件,表示光標已離開按鈕。但是應用程序通常只處理按下按鈕的完整動作的單個ActionEvent事件。
Java編程中應用的GUI設計基礎
每個事件類型都有一個相應的監視器接口,表11-2列出了每個接口的方法。實現監視器接口的類必須實現所有定義在接口中的方法。

Java編程中應用的GUI設計基礎

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲视频在线观看 | 日韩1区2区 | 国产欧美在线观看 | av天天干| 日本不卡免费新一二三区 | 日韩中文字幕 | 在线精品一区二区 | 一级黄色大片在线 | 99精品视频在线免费观看 | 亚洲视频一区二区 | 蜜桃av网址 | 国产午夜精品一区二区三区视频 | 五月婷婷狠狠爱 | 久草网站| 久草观看| 国产精品国产三级国产aⅴ 成人在线免费看 | 国产精品免费一区二区三区四区 | 国产精品久久久爽爽爽麻豆色哟哟 | 中文字幕乱码亚洲精品一区 | 日韩精品久久 | 大毛片| 日韩三级在线 | 国产精品一码二码三码在线 | 毛片激情永久免费 | 精品国产欧美一区二区三区成人 | 午夜剧场在线免费观看 | 国产精品视频一二三 | 亚洲国产精品一区二区久久 | av有声小说一区二区三区 | 国产精品九九九 | 成人精品久久久 | 色爱亚洲| 成人福利网站 | 亚洲精品乱码久久久久久金桔影视 | 午夜视频免费在线观看 | 一区二区三区免费在线观看 | 精品综合久久久 | 欧美精品一区二区三区一线天视频 | 日本精品1区2区 | 国产一区日韩欧美 | 九九热这里只有精品8 |