導航:首頁 > 編程語言 > javaswing開發詳解

javaswing開發詳解

發布時間:2024-02-09 10:22:12

1. 請簡要說明java基於SWING的圖形用戶界面設計中的事件機制及處理事件的步驟 謝謝了,簡要

編程語言中的事件就是當某組件的狀態發生改變的時候通知其它對象發生了這件事,我們在這里只討論圖形界面的組件,有可能是按鈕、文本框、菜單、多選等等。
對於通知其它對象的方法一般有兩種模式:
1)推模式:狀態改變的對象通知其它對象;
2)拉模式:其他對象不停的查看該對象狀態是否發生改變。
例如我去小賣部買煙,要一包紅塔山,結果小賣部沒貨了,如果我把我得電話給小賣部老闆,煙如果到了請給我打電話,這就是推模式。如果我每隔5分鍾來小賣部看一看煙是否到了,這就是拉模式。
Java採用的是推模式,所有監聽事件都基於觀察者設計模式,所以我們也可以自己給予觀察者開發出專用的監聽器。

我們JavaGUI程序開發,會經常使用到監聽事件,比如一個小計算器的程序,當我們點擊「計算」按鈕後,希望程序將兩個文本框中的數字相加,那麼就必需給這個按鈕添加事件:
1)按鈕的動作觸發事件介面是ActionListener介面(不同組件要實現不同功能需要有不同的介面),我們需要寫一個事件類,實現ActionListener介面,介面中需要我們實現的方法actionPerformed(ActionEvent e)代表了當按鈕事件被觸發後需要程序做些什麼,比如在這里用System.out.println("你好")在控制台列印你好,這一步就相當於我把電話寫在紙上。
2)調用JButton組件實例的addActionListener(ActionListener al)方法(其它事件也有相應的方法)將上面寫的事件類注冊到這個按鈕上,這就相當於我把寫著電話的紙條交給小賣部的老闆。
上述兩部工作完成後,這個按鈕的事件就添加完成了,程序運行,點擊按鈕,動作事件被觸發,控制台顯示「你好」。

實例:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;

/**
* 一個簡單的按鈕事件教學實例
* @author 米強
*
*/
public class Test extends JFrame {

public Test() {
super("簡單的按鈕事件實例");
// 一個按鈕的實例化對象
JButton button = new JButton("按鈕");
// 構造一個事件類,該類實現了ActionListener動作介面
MyActionListener action = new MyActionListener();
// 為這個按鈕添加動作事件(匿名類等寫法在這里不做討論)
button.addActionListener(action);
// 將按鈕添加到窗體中
getContentPane().add(button);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(300, 200);
setLocationRelativeTo(null);
setVisible(true);
}

public static void main(String[] args) {
new Test();
}

}

/**
* 事件類,實現ActionListener介面
* @author 米強
*
*/
class MyActionListener implements ActionListener {

/**
* 動作事件出發後所執行的方法
*/
public void actionPerformed(ActionEvent e) {
// 在控制台列印「你好」
System.out.println("你好");
}

}

2. JavaSwing圖形界面開發與案例詳解的內容簡介

全書共20章,其中第1~2章主要介紹有關Swing的基礎知識,包括Swing的基本概述、如何使用IDE開發Swing程序;第3~15章結合眾多實例和問題介紹最常用、最有用的組件及其應用方法,包括標簽和按鈕組件、布局管理器組件、面板組件、列表框組件、下拉列表框組件、進度條組件、時間組件、滑塊組件、分隔條組件、選取器組件、文本組件、窗口組件、對話框組件、JApplet組件、菜單組件、工具條組件、表格組件、樹組件以及組件的事件處理機制等;第16~19章主要講述有關Swing圖形開發的其他知識,包括觀感器、Swing線程與並發、模型與架構等。第20章通過一個綜合實例使讀者能夠在實際開發中理解和鞏固所學知識,從而提高綜合應用能力。
《JavaSwing圖形界面開發與案例詳解》幾乎涵蓋了目前JavaSwing圖形開發必備的所有常用知識,擁有豐富的實例,且這些實例均來自於工程實踐,《JavaSwing圖形界面開發與案例詳解》適合Java程序語言的初學者閱讀,也可供具有一定編程經驗的初級編程人員參考。

3. JavaSwing圖形界面開發與案例詳解的作品目錄

第1章JavaSwing概述
1.1什麼是JavaSwing
1.1.1Swing的發展史
1.1.2Swing的功能
1.1.3Swing的特性
1.2.1avaSwing的包結構
1.3一個JavaSwing程序實例
1.4本章小結
1.5本章習題
第2章如何使用IDE開發Swing程序
2.1如何利用Eclipse開發Swing程序
2.2如何利用JBuilder開發Swing程序
2.3如何利用NetBeans開發Swing程序
2.4本章小結
2.5本章習題
第3章JavaSwirlg組件基礎
3.1Swing組件類的層次
3.2Window類
3.2.1頂層容器類和包含層次
3.2.2在頂層容器中添加組件
3.2.3在頂層容器中添加菜單欄
3.3JComponent類
3.4本章小結
3.5本章習題
第4章如何使用標簽和按鈕組件
4.1如何使用標簽
4.2如何使用按鈕
4.2.1如何使用普通按鈕
4.2.2如何使用單選按鈕
4.2.3如何使用復選框
4.2.4按鈕組件的實例應用
4.3本章小結
4.4本章習題
第5章如何使用布局管理器組件
5.1布局管理器概述
5.2布局管理器的種類
5.2.1BorderLayout
5.2.2FlowLayout
5.2.3GridLayout
5.2.4GridBagLayout
5.2.5CardLayout
5.2.6BoxLayout
5.2.7SpringLayout
5.2.8GroupLayout
5.3自定義布局管理器的創建
5.4本章小結
5.5本章習題
第6章如何使用面板組件
6.1如何使用JPanel
6.2如何使用JScrollPane
6.3如何使用JSplitPane
6.4如何使用JTabbedPane
6.5如何使用JIntemalFrame
6.6如何使用JLayeredPane
6.7如何使用JRootPane
6.8本章小結
6.9本章習題
第7章Swirlg事件處理機制
7.1Swing事件處理機制概述
7.2Swing中的監聽器
7.2.1事件處理的過程與步驟
7.2.2匿名類方式處理事件
7.2.3適配器類
7.2.4Swing所支持的事件監聽器
7.2.5窗口事件的處理
7.2.6動作事件的處理
7.2.7焦點事件的處理
7.3本章小結
7.4本章習題
第8章如何使用列表框和下拉列表框組件
8.1如何使用列表框JList
8.1.1使用數組方式創建列表框
8.1.2使用Vector方式創建列表框
8.1.3使用ListModel方式創建列表框
8.1.4列表框選取事件的處理
8.1.5列表框雙擊事件的處理
8.2如何使用下拉列表框JComboBox
8.2.1使用數組和Vector創建下拉列表框
8.2.2使用ComboBoxModel創建下拉列表框
8.2.3下拉列表框的事件處理
8.3本章小結
8.4本章習題
第9章如何使用進度條、時間、滑塊和分隔條組件
9.1如何使用進度條組件JProgressBar
9.2如何使用時間組件Timer
9.3如何使用滑塊組件JSlider
9.4如何使用分隔條組件JSeparator
9.5本章小結
9.6本章習題
第10章如何使用選取器組件
10.1如何使用文件選取器JFileChooser
10.1.1如何創建JFileChooser組件
10.1.2如何創建JFileChooser對話框
10.2如何使用顏色選取器JColorChooser
10.3本章小結
10.4本章習題
第11章如何使用文本組件
11.1文本組件概述
11.2如何使用普通文本組件
11.2.1如何使用JTextField
11.2.2如何使用JPasswordField
11.2.3如何使用JFormattedTextField
11.3如何使用文本區組件
11.4如何列印文本組件
11.5本章小結
11.6本章習題
第12章如何使用窗口、對話框和JApplet組件
12.1如何使用窗口組件
12.2如何使用對話框組件
12.3如何使用JApplet組件
12.4本章小結
12.5本章習題
第13章如何使用菜單和工具條組件
13.1如何使用菜單組件
13.1.1菜單組件的類層次
13.1.2如何創建菜單
13.1.3如何處理菜單事件
13.1.4如何響應鍵盤操作
13.1.5如何使用彈出式菜單
13.1.6如何使用菜單項的啟用和禁用功能
13.1.7如何創建復選框菜單項
13.1.8如何創建單選按鈕菜單項
13.1.9如何定義個性化菜單
13.1.10菜單組件的常用API
13.2如何使用工具條組件
13.2.1如何創建工具條
13.2.2如何定義個性化工具條
13.2.3工具條組件的常用API
13.3本章小結
13.4本章習題
第14章如何使用表格組件
14.1如何創建一個表格
14.2如何把表格加入容器
14.3如何設置表格列寬
14.4如何創建表格模型
14.5如何監聽數據變化
14.6如何使用選擇器
14.7如何使用編輯器和渲染器
14.8如何使用自定義渲染器
14.9如何為單元格指定文字說明
14.10如何為表頭指定文字說明
14.11如何使用排序和過濾
14.12如何使用組合框作為編輯器
14.13如何使用其他編輯器
14.14如何使用編輯器驗證文本
14.15如何列印表格
14.16本章小結
14.17本章習題
第15章如何使用樹組件
15.1如何創建樹
15.2如何創建數據模型
15.3如何處理節點事件
15.3.1如何處理TreeModelEvent事件
15.3.2如何處理TreeSelectionEvent事件
15.4如何定義個性化樹
15.5樹組件的常用API
15.6本章小結
15.7本章習題
第16章如何使用Swing觀感器
16.1如何設置程序的觀感
16.2如何自定義觀感器
16.3本章小結
16.4本章習題
第17章Swing與並發
17.1多線程問題
17.2初始線程
17.3事件分派線程
17.4工作線程
17.4.1簡單的背景任務
17.4.2擁有臨時結果的任務
17.4.3取消背景任務
17.4.4綁定屬性和狀態方法
17.5本章小結
17.6本章習題
第18章Swing模型架構
18.1傳統的MVC設計模式
18.2可分離的模型架構
18.3本章小結
18.4本章習題
第19章Swing的其他特性
19.1如何在Swing組件中使用HTML
19.2如何使用邊框
19.2.1如何使用Swing中的邊框
19.2.2如何創建自定義邊框
19.2.3邊框組件的常用API
19.3如何使用圖標
19.4如何使用動作
19.5如何支持輔助技術
19.6如何使用焦點子系統
19.7如何使用鍵綁定
19.8如何在對話框中使用Modality
19.9如何創建SplashScreen
19.10如何使用SystemTray
19.11如何使用Swing拖曳功能和數據傳輸
19.12本章小結
19.13本章習題
第20章Swirlg實現通訊錄系統
20.1通訊錄系統的軟體框架
20.2通訊錄系統的登錄系統
20.3通訊錄系統的主菜單系統
20.3.1資料庫模塊的設計
20.3.2信息界面模塊的設計
20.3.3功能模塊的設計
20.3.4其他模塊的設計
20.3.5TabbedPane容器框架的設計
20.3.6主菜單的設計
20.4本章小結
……

4. 利用 Java Swing 實現游戲開發

Swing初體驗 對於想學習Swing編程的朋友 我們特地為大家准備了一些小竅門 首先 下載並閱讀代碼是極有必要的 由於這是一篇關於Swing的教程 所以 我們只是盡可能講解一些與Swing有關的內容 與Swing無關的內容一般不會涉及 例如演算法部分 其次 受篇幅限制 也不可能在這里將每部分代碼都寫得完完整整的 所以 大家也需要對照完整代碼來看 最後 為了使大家更容易把精力集中在Swing學習上 我們也將游戲開發中所需資源放在下載文件中 大家下載後便能夠編譯運行 看到執行結果 (下載游戲源文件) 頂層容器 什麼是頂層容器?當我們使用Java進行圖形編程的時候 圖在哪裡繪制呢?我們需要一個能夠提供圖形繪制的容器 這個容器就被稱為頂層容器 你也可以把它想像成一個窗口 頂層容器是進行圖形編程的基礎 一切圖形化的東西 都必然包括在頂層容器中 在Swing中 我們有三種可以使用的頂層容器 它們分別是:JFrame:用來設計類似於Windows系統中的窗口形式的應用程序 JDialog:和JFrame類似 只不過JDialog是用來設蘆旦計對話框 JApplet:用來設計可以在嵌入在網頁中的Java小程序 如果需要使用Swing製作一個窗口類程序 我們的代碼看起來應該是這樣:import javax swing *;public class KyodaiUIextends JFrame {……} 控制項 控制項是構成應用程序界面的基本元素 按鈕 文本框 進度條等 這些都是控制項 控制項(這里我們只討論可視化控制項)又可以分為容器控制項和非容器控制項 從字面意義上來理解 容器控制項就是能包含其他控制項的特殊控制項 例如 Java中的JPanel控制項就屬於容器型控制項 我們可以在JPanel中放置按鈕 文本框等非容器控制項 你甚至可以在JPanel中再放置若干個JPanel控制項(值得注意的是 頂層容器也是容器型控制項 每一個窗口應用程序中有且只能有一個頂層容器控制項 換句話說 頂層容器不能包括在其他的控制項中) Java中的容器控制項有很多 除剛才提到的JPanel外 還有JTabbedPane JScrollPane等 非容器控制項有JButton JLabel JTextField等 如果你需要向某個容器型的控制項中添加控制項 你可以使用 add(Component p) 方法來實現 如:JPanel panel = new JPanel();JButton button = new JButton();panel add(button); 布局 什麼是布局?布局是Java中用來控制控制項排列位置的一種界面管理系統 使用過其他可視化編程開發語言的人在初次接觸Java界面設計時 總會感覺到Java界面設計很別扭:居然沒有提供所見即所得的設置控制項坐標的方法!然而 事實證明 Java本身提供的布局管理系統也一樣能夠出色地完成我們的需要 而且在跨平台時表現得更有優勢 常用的布局有:BorderLayout:將界面分割為上下左右以及中間一塊區域的管理系統 在BorderLayout布局中 最多你只能放 個控制項 如果超過 個控制項 建議還是選用其他的布局系統吧 GridLayout:GridLayout是將用戶界面切割為棋盤一樣的布局管理系統 如果我們要設計一個類似於Windows中自帶的計算器軟體 GridLayout無疑是最佳選擇 FlowLayout:FlowLayout與上述兩類布局管理系統不太一樣 在FlowLayout中 你不必指定每個控制項放在哪 你只需要把控制項加入到FlowLayout中 FlowLayout就會根據你添加控制項的順序依次放置控制項 如果空間不夠 會自動換行 在對這幾個布局管理系統有了基本認識後 我們就一起來進入界面設計吧 在仔細觀察了QQ游戲中 連連看 的設閉州定後 我們可以發現 整個界面分為三個區 頂部是系統菜單區 佔地面積最大的是用戶游戲區 另外還有一個用戶交互區 每個區域中都由若干控制項組成 這么多控制項 我們從哪開始入手呢?由於容器控制項中可以放置其他控制項 因此 我陪態擾們只需要先確定放置的容器控制項就可以了 既然已經知道需要使用容器控制項的個數 接下來讓我們就進入布局管理系統的選擇 用GridLayout?似乎有點勉強 用FlowLayout?還有更好的選擇嗎?對了 我想你一定想到了是BorderLayout吧 如下圖 所示 動手之前 大家一定要注意的是 界面的設計要先考慮好尺寸 不管是主程序界面的大小還是每個區域的大小 如果沒有設計好合適的尺寸 將來改動起來會十分痛苦 下面便是相應的源程序:import java awt *;import javax swing *;public class KyodaiUI extends JFrame {public KyodaiUI() {this setSize( ); //將窗體的大小設定為 * this setDefaultCloseOperation(JFrame EXIT_ON_CLOSE);this setResizable(false); //窗體不能改變大小this setTitle( 連連看 ); //設置標題JPanel toolBar = new JPanel();toolBar setBackground(Color white);toolBar setPreferredSize(new Dimension( ));JPanel actionPanel = new JPanel(); //新建JPanel型的控制項actionPanel setBackground(Color yellow); //設置背景色actionPanel setPreferredSize(new Dimension( )); //設置大小JPanel contentPanel = new JPanel();contentPanel setBackground(Color blue);contentPanel setPreferredSize(new Dimension( ));this getContentPane() add(toolBar BorderLayout NORTH);this getContentPane() add(actionPanel BorderLayout EAST);this getContentPane() add(contentPanel BorderLayout CENTER);}public static void main(String[] args) throws HeadlessException {KyodaiUI kyodaiUI = new KyodaiUI();kyodaiUI show();}}讓我們來看看上面這段程序是如何運行的 首先 extends JFrame表明了這是從JFrame中繼承過來的 JFrame是最基本的頂層容器控制項 實際上 在JDK中 以字母J打頭的控制項都是Swing控制項 然後設置了容器的屬性 其中 setDefaultCloseOperation(JFrame EXIT_ON_CLOSE)是用來告訴Java虛擬機 當用戶點擊窗體右上角的 關閉 按鈕時 關閉該窗口進程 如果不這么做的話 你會發現雖然你可以點將窗口關閉 然而程序卻沒有退出 在接下來的代碼中 我們為頂層容器添加了三個Panel容器 要注意的是 在AWT中 我們可以直接寫為add(toolBar BorderLayout NORTH) 而在 Swing 中卻一定要寫成getContentPane() add(toolBar BorderLayout NORTH) 否則程序就會出錯 現在大家可以放在編譯運行看看 是不是和我的運行結果一樣(見圖 )? 邊框 雖然我們使用了不同前景色來區別不同的區域 然而卻沒有層次感 加上邊框一定會漂亮許多 在Java中 所有以J打頭的Swing控制項都可以使用setBorder方法來為自己設置邊框 邊框有很多種 線型 凸起 凹下 空的 你甚至可以自由組合形成個人風格 所有的Border都必須使用javax swing BorderFactory中提供的靜態方法來創建 比如:Border border = BorderFactory createBevelBorder(BevelBorder LOWERED new Color( ) new Color( ) new Color( ) new Color( ));現在 我們將toolBar setBackground(Color white)改為toolBar setBorder(border) 立體效果是不是已經出現了?實戰??寫上自己的大名現在我們已經有了一個能夠運行的界面了 雖然它什麼也做不了 但是請你別慌 羅馬不是一天建成的 現在讓我們在菜單區提供一個 關於 菜單 用來顯示程序的信息 難道你不想讓別人知道你的大名嗎?Swing本身就提供了現成的按鈕控制項JButton 我們只需要創建一個新的按鈕:JButton about = new JButton( 關於 );這個按鈕該怎麼放到菜單區而不是別的地方呢?我們可以加入下面的代碼:toolBar add(about);咦 怎麼點按鈕沒有反應?這是因為你還沒有告訴程序點擊按鈕時要做什麼事情呢 要為按鈕添加事件響應 首先需要使用about addActionListener(this)來告訴程序監聽按鈕按下時的事件 由於ActionListener是一個程序介面 因此 我們在類的申明的地方也得做一點小小的修改:public class KyodaiUI extends JFrame implements ActionListener { }實現ActionListener介面是為了告訴程序我要進行事件處理了 當然 最後我們得添加響應事件的代碼:public void actionPerformed(ActionEvent e) {if (e getSource() == about) {JOptionPane showMessageDialog(this 我的大名 關於 JOptionPane INFORMATION_MESSAGE);return ;}}其中 e getSource() 表示當前觸發事件的控制項 由於我們的程序中往往會有多個以上的控制項 這些控制項都有可能產生事件 所以我們必須使用這個方法來找到產生事情的控制項 小結 讓我們一起來回顧一下今天所學的內容:首先我們了解了頂層容器 也知道了控制項分為容器控制項和非容器控制項 同時還知道使用邊框 最後 我們還小小的處理了一下按鈕的事件 學而時習之 不亦說乎 就讓我留點小小的作業 幫助大家鞏固一下今天所學的內容:上面我們添加的按鈕在菜單欄的中間 並不美觀 lishixin/Article/program/Java/hx/201311/25907

5. java swing怎樣開發出漂亮的界面

使用Swing照樣可以開發出漂亮的界面.

主要的解決方案如下:

6. java的swing組件的使用

這些直接看對應JDK版本的java doc裡面關於swing的部分,有很詳細的索引頁和每種控制項的使用方法,還有jdk自己的一些sample。

閱讀全文

與javaswing開發詳解相關的資料

熱點內容
尊貴冰箱壓縮機 瀏覽:989
基於單片機的手機充電器 瀏覽:734
銀行家演算法可以解決臨界區問題嗎 瀏覽:127
保密櫃解壓的文件 瀏覽:854
黑色主題的c編譯器 瀏覽:680
米思齊編譯成功無法上傳 瀏覽:894
java多態實現方式 瀏覽:336
電視的伺服器是什麼意思 瀏覽:998
mac安裝虛擬機linux 瀏覽:845
h3c命令查詢 瀏覽:608
貸款買車時拿到了綠本不用解壓 瀏覽:805
網路游戲客戶端編程 瀏覽:208
當代政治哲學pdf 瀏覽:276
我的世界國際版的伺服器怎麼進不去 瀏覽:739
十分鍾帶你反編譯 瀏覽:695
vi命令行模式 瀏覽:612
安卓手機如何做到手勢截屏 瀏覽:386
程序員研發出智能辦案系統 瀏覽:114
羽絨服能用壓縮袋嗎 瀏覽:27
博弈學pdf 瀏覽:228