導航:首頁 > 編程語言 > java圖形界面swing

java圖形界面swing

發布時間:2024-06-30 14:08:49

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. java的swing組件的使用

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

3. java awt和swing有什麼區別

跟本地系統的相關性。。JDK寫程序 所有功能都是靠虛擬機去操作本地操作系統 比如window下。。就是JDK用windows API實現你功能

而awt包中很多組件是組件自身去調用本地操作系統代碼
swing包中的組件 採用的是調用本地虛擬機方法,由虛擬機再調用本地操作系統代碼。。
意思就是中間多了一層,這樣就加強了swing包的移植性,與本地關系不那強了

4. java的awt和swing有什麼不同呢

awt和swing的區別:

1.awt是基於本地方法的C/C++程序,其運行速度比較快;

而swing是基於awt的Java程序,其運行速度比較慢。

2.AWT的控制項在不同的平台可能表現不同,而Swing在所有平台表現一致。

3.AWT和Swing的實現原理不同。

AWT的圖形函數與操作系統提供的圖形函數有著一一對應的關系。

而Swing 不僅提供了AWT 的所有功能,還用純粹的Java代碼對AWT的功能進行了大幅度的擴充。

4.awt是抽象窗口組件工具包,是 java 最早的用於編寫圖形節目應用程序的開發包;

但swing是為了解決awt存在的問題而新開發的包,它以awt為基礎的。

(4)java圖形界面swing擴展閱讀:

在實際應用中,應該使用AWT還是Swing取決於應用程序所部署的平台類型。

對於一個嵌入式應用,目標平台的硬體資源往往非常有限,而應用程序的運行速度又是項目中至關重要的因素。

在這種矛盾的情況下,簡單而高效的AWT當然成了嵌入式Java的第一選擇。

在普通的基於PC或者是工作站的標准Java應用中,硬體資源對應用程序所造成的限制往往不是項目中的關鍵因素。

所以在標准版的Java中則提倡使用Swing, 即通過犧牲速度來實現應用程序的功能。

5. java涓璼wing鏄浠涔堟剰鎬濓紵

Swing鏄疛ava騫沖彴鐨勪竴涓狦UI錛堝浘褰㈢敤鎴風晫闈錛夋嗘灦錛屽畠鎻愪緵浜嗕竴濂椾赴瀵岀殑緇勪歡銆佸竷灞綆$悊鍣ㄥ拰浜嬩歡浣撶郴錛岃兘澶熷揩閫熸惌寤哄悇縐嶇獥鍙e簲鐢ㄧ▼搴忋係wing鐨勪唬鐮佸彲浠ヨ法騫沖彴榪愯岋紝鍥犳ゅ彲浠ヤ繚璇佺▼搴忓湪涓嶅悓鎿嶄綔緋葷粺涓婄殑涓鑷存с
Swing鐨勭壒鐐逛箣涓鏄鍙瀹氬埗鎬ч珮銆傜敤鎴峰彲浠ラ氳繃淇鏀圭粍浠剁殑棰滆壊銆佸瓧浣撱佽竟妗嗙瓑灞炴э紝鑷瀹氫箟紿楀彛鐨勫栬傦紱鍚屾椂錛孲wing鎻愪緵浜嗗緢澶氬睘鎬у拰鏂規硶錛屽彲浠ュ圭粍浠剁殑琛屼負榪涜屽畾鍒躲傚彟涓涓鐗圭偣鏄杞婚噺綰с傜浉姣斾簬AWT錛堟娊璞$獥鍙e伐鍏峰寘錛夛紝Swing涓嶉渶瑕佽皟鐢ㄦ搷浣滅郴緇熺殑鏈鍦癆PI錛岃屾槸瀹屽叏鐢盝ava浠g爜瀹炵幇錛屽洜姝ゆ洿涓虹伒媧伙紝鍚屾椂涔熸洿涓哄崰鐢ㄨ祫婧愬皯銆
Swing騫挎硾搴旂敤浜嶫ava鍥懼艦鐣岄潰寮鍙戙傛棤璁烘槸妗岄潰杞浠惰繕鏄娓告垙寮鍙戱紝Swing閮藉彲浠ユ彁渚涗赴瀵岀殑緇勪歡鍜屽竷灞綆$悊鍣錛屾柟渚垮紑鍙戣呭疄鐜版洿鍔犵編瑙傘佹槗鐢ㄧ殑鐣岄潰銆傚彟澶栵紝鍦ㄤ紒涓氱駭搴旂敤棰嗗煙錛孲wing涔熻鐢ㄦ潵寮鍙戜竴浜涘㈡埛絝搴旂敤紼嬪簭錛屽侲RP銆丆RM絳夈

6. java怎麼做swing界面

swing做界面,一般需要一種基本知識:

一:關於布局的知識,常用的布局要熟悉,比如邊界布局,流式布局,絕對布局,網格布局等. 布局決定了組件(按鈕,文本框,下拉框等)所在的位置

二:關於事件響應機制,比如點擊按鈕事件,如何響應.

三:一些常用的組件,按鈕, 文本框, 下拉框,復選按鈕, 單選按鈕, 等

舉例: 簡單的代碼,實現給窗口隨機更換背景色

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

{

publicDemoFrame(){
JButtonjb1=newJButton("點擊換背景色");//定義按鈕組件
jb1.addActionListener(this);//給按鈕添加事件響應機制,按鈕點擊時執行actionPerformed方法
add(jb1);//把組件添加到窗口
setLayout(newFlowLayout());//流式布局
setTitle("Color");//窗口標題
setSize(300,200);//大小
setLocationRelativeTo(null);//居中
setDefaultCloseOperation(EXIT_ON_CLOSE);//點擊關閉時退出系統
setVisible(true);//窗口可見
}
publicstaticvoidmain(String[]args){//main方法,啟動窗口
newDemoFrame();//創建窗口
}

publicvoidactionPerformed(ActionEvente){//當按鈕被點擊時,執行下面的代碼
//隨機顏色,並設置成為窗口的背景色
getContentPane().setBackground(newColor((int)(Math.random()*256),(int)(Math.random()*256),(int)(Math.random()*256)));
}
}

閱讀全文

與java圖形界面swing相關的資料

熱點內容
javaparams 瀏覽:20
kindle能看pdf嗎 瀏覽:351
壓縮機排氣過熱度報警 瀏覽:441
android設計結構 瀏覽:384
vivo手機在哪個文件夾 瀏覽:361
勁舞團的歌曲怎麼解壓 瀏覽:836
創維小度ai盒子支持什麼app 瀏覽:826
修復加密盤 瀏覽:528
為什麼推廣app那麼多錢 瀏覽:899
zip壓縮文件下載 瀏覽:551
移動app語音在哪裡 瀏覽:481
程序員入職簽約時間 瀏覽:718
python操作客戶端軟體的庫 瀏覽:146
第10胸椎壓縮性骨折 瀏覽:646
python和matlab量化 瀏覽:78
文件夾右鍵閃退怎麼解決 瀏覽:728
安卓平板如何連接有線投影儀 瀏覽:655
什麼app是賣玉鐲 瀏覽:490
把單個ipk編譯進openwrt 瀏覽:23
國家反詐中心app怎麼防詐騙 瀏覽:836