本文目錄一覽:
- 1、java設計和實現圖形用戶界面的主要工作有哪些
- 2、問下,大家做Java開發的時候,是否很少會用到Java開發圖形化界面?
- 3、java在GUI開發上有什麼缺點?
- 4、java怎麼實現這個圖形化界面
- 5、在Java圖形用戶界面編程中,若顯示一些不需要修改的文本信息,一般是使用什麼類的對
java設計和實現圖形用戶界面的主要工作有哪些
步驟如下,都是我自己整理的:一維數組:1.聲明一維數組 在Java語言中,數組是一種引用類型,數組名如同對象名一樣,是一種引用。聲明數組是聲明一個標識符能引用數組,需要指定數組元素的類型。聲明一維數組有兩種格式: 數組元素類型 數組名[]; 或者 數組元素類型[] 數組名; Student stu[];//與Student[] stu; 等價2.創建一維數組 創建一維數組就是為數組分配存儲空間,需指定數組長度。數組創建後,數組名就標識用於存儲數組元素的存儲空間。創建一維數組的方法有3種: (1) 先聲明後創建 創建數組代碼的一般形式為:數組名字 = new 數組元素類型[元素個數]; 例如,代碼: int intArray []; intArray = new int[5]; (2) 聲明時創建 把聲明數組和創建數組的代碼結合在一起。例如: int intArray[] = new int[5]; (3) 直接賦值創建 在聲明數組時,直接給出數組的初值。例如: int [] intArray = {1,2,3,4,5}; 直接賦值創建數組的方法也稱為數組初始化。在數組初始化的代碼中,花括號{}內初值間的分隔符是逗號”,”。系統根據數組初始化時提供的初值個數確定數組的元素個數,然後為數組分配空間,並為數組各元素依次賦初值。上述代碼相當於: int intArray[] = new int[5]; intArray[0]=1; intArray[1]=2; intArray[2]=3;intArray[3]=4; intArray[4]=5; 前兩種方法創建數組時,系統會給數組元素提供默認初始值:數值型數組元素的默認值是0;char類型數組元素的默認值是全0代碼字符;布爾類型數組元素的默認值是false。在Java中,所有數組都有一個成員length,程序可以訪問它,獲得數組的元素個數,但不能改變它。例如,按照前面數組intArray的定義,intArray.length的值是5。 3.引用一維數組元素 引用一維數組元素代碼的一般形式為 數組名[下標] 數組下標可以是整型常數或者整型表達式。數組下標範圍是0到數組名.length-1。為了確保程序安全性,Java運行系統對數組下標自動進行範圍越界檢查。 4.數組是一種引用類型 數組也是一種引用類型,一個數組名在不同時間可引用不同數組。代碼: myArray =firstArray; myArray =secondArray;4.1.2 多維數組 數組元素有多個下標的數組就是多維數組。多維數組是一種數組的數組,例如,當數組的元素又是一維數組時,就是一個二維數組。在Java程序中,可以有三維數組,或四維數組等。以下以二維數組為例說明多維數組。 1. 聲明二維數組 聲明二維數組的一般形式有以下3種(類似的代碼可以聲明多維數組):類型 數組名 [ ][ ] 類型 [ ][ ] 數組名 類型 [ ] 數組名 [ ] 2. 創建二維數組 創建二維數組對象的方法有多種: (1) 直接分配(平衡二維數組——矩陣):類型 數組名[][]=new 類型[長度1][長度2] (2) 從最高維開始,分別對每一維分配不等長的空間(非平衡數組):以二維數組為例,先指定第一維,創建有指定子數組個數的二維數組後,依次對每個子數組確定元素個數,並創建子數組。例如,以下代碼創建一個二維數組a[][],它有3個子數組,第一個子數組有4個元素,第2個子數組有5個元素,第3個子數組有2個元素: int a[][] = new int[3]; a[0]=new int [4]; a[1]=new int[5]; a[2]=new int[2];(3) 直接賦值創建 聲明二維數組,同時直接給出各子數組的元素。如果子數組的元素個數不同,則創建是一個非平衡的二維數組。例如,代碼: int [][]x= {{5,6,7}, {8,9,10,11}, {2,9} }; 3. 引用二維數組 二維數組元素的引用方式是: 數組名[下標1][下標2] 下標1是第一維下標,下標2是第二維下標。 4. 使用二維數組要注意的問題 對於二維數組,要注意以下兩點: (1) 二維數組名,length和二維數組名[下標1].length的區別。二維數組名.length是二維數組的子數組個數;二 維數組名[下標1].length是指定子數組的元素個數。(2) 二維數組名[下標]是一維數組。 public class Examle3_1 { public static void main(String args[]) { boolean bTb1[][] = new boolean[4][]; for (int i = 0; i bTb1.length; i++) { bTb1[i] = new boolean[i + 1]; for (int k = 0; k bTb1[i].length; k++) { System.out.print(bTb1[i][k] + ” “); } System.out.println(“”);}}}
圖形用戶界面要先加入組件到容器中,然後再給組件添加監聽器,具體如下:圖形界面設計基礎 圖形用戶界面Graphical User Interface,GUI 5.1.1AWT和Swing Swing可以看作是AWT (AbstractWindow Toolkit)的改良版,而不是代替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設計圖形界面,主要引入兩個包: javax.swing 包含Swing 的基本類;java.awt.event 包含與處理事件相關的接口和類。 5.1.2組件和容器 組件(component)是圖形界面的基本元素,用戶可以直接操作,例如按鈕。容器(Container)是圖形界面的的複合元素,容器可以包含組件,例如面板。Java 語言為每種組件都預定義類,程序通過它們或它們的子類創建各種組件對象,如,Swing 中預定義的按鈕類JButton是一種類,程序創建的JButton對象,或JButton子類的對象就是按鈕。Java語言也為每種容器預定義類,程序通過它們或它們的子類創建各種容器對象。例如,Swing中預定義的窗口類JFrame是一種容器類,程序創建的JFrame或JFrame子類的對象就是窗口。為了統一管理組件和容器,為所有組件類定義超類,把組件的共有操作都定義在Component類中。同樣,為所有容器類定義超類 Container 類,把容器的共有操作都定義在 Container 類中。例如,Container 類中定義了 add()方法,大多數容器都可以用add()方法向容器添加組件。Component、Container 和Graphics 類是AWT 庫中的關鍵類。為能層次地構造複雜的圖形界面,容器被當作特殊的組件,可以把容器放入另一個容器中。例如,把若干按鈕和文本框分放在兩個面板中,再把這兩個面板和另一些按鈕放入窗口中。5.1.3事件驅動程序設計基礎 1.事件、監視器和監視器註冊 圖形界面上的事件是指在某個組件上發生用戶操作。對事件作監視的對象稱為監視器,監視器提供響應事件的處理方法。要讓監視器與事件對象關聯起來需對事件對象作監視器註冊,告訴系統事件對象的監視器。 2.實現事件處理的途征 java語言編寫事件處理程序主要有兩種方案;一個是程序重設handleEvent(Eventevt),採用這個方案的程序工作量稍大一些。另一個方案是程序實現一些系統設定的接口。java按事件類型提供多種接口,作為監視器對象的類需要實現相應的接口,即實現響應事件的方法。當事件發生時,系統內設的handleEvent(Event evt)方法就自動調用監視器的類實現的響應事件的方法。java.awt.event 包中用來檢測並對事件做出反應的模型包括以下三個組成元素: (1)源對象:事件“發生”這個組件上,它與一組“偵聽”該事件的對象保持着聯繫。(2)監視器對象:一個實現預定義的接口的類的一個對象,該對象的類要提供對發生的事件作處理的方法。(3)事件對象:它包含描述當事件發生時從源傳遞給監視器的特定事件的信息。一個事件驅動程序要做的工作除創建源對象和監視器對象之外,還必須安排監視器了解源對象,或向源對象註冊監視器。每個源對象有一個已註冊的監視器列表,提供一個方法能向該列表添加監視器對象。只有在源對象註冊了監視器之後,系統才會將源對象上發生的事件通知監視器對象。3.事件類型和監視器接口 在 java 語言中,為了便於系統管理事件,也為了便於程序作監視器註冊,系統將事件分類,稱為事件類型。系統為每個事件類型提供一個接口。要作為監視器對象的類必須實現相應的接口,提供接口規定的響應事件的方法。再以程序響應按鈕事件為例,JButton類對象button可以是一個事件的激發者。當用戶點擊界面中與button對應的按鈕時,button對象就會產生一個ActionEvent類型的事件。如果監視器對象是obj,對象obj的類是Obj,則類Obj必須實現AWT中的ActionListener接口,實現監視按鈕事件的actionPerformed方法。button對象須用addActionListener方法註冊它的監視器obj。程序運行時,當用戶點擊 button 對象對應的按鈕時,系統就將一個 ActionEvent 對象從事件激發對象傳遞到監視器。ActionEvent對象包含的信息包括事件發生在哪一個按鈕,以及有關該事件的其他信息。
問下,大家做Java開發的時候,是否很少會用到Java開發圖形化界面?
之前我不用選擇用java的awt和swing。但是現在有了eclipse的swt,用它可以很方便的開發出windows風格的窗口,所以我覺得swt給java圖形化界面帶來了春天。
java在GUI開發上有什麼缺點?
不在JRE的標準庫中。因此必須將它和程序捆綁在一起。
AWT是Abstract Window Toolkit(抽象窗口工具包)的縮寫,是SUN專門針對Java GUI編程提供的最早的也是最初的開發工具包,用來建立和設置Java圖形用戶界面,這個工具包提供了一套與本地圖形界面交互的接口。
AWT 中的圖形函數與操作系統所提供的圖形函數之間有着一一對應的關係(peers)。也就是說,當我們利用 AWT 來構件圖形用戶界面的時候,實際上是在利用操作系統所提供的圖形庫。不過由於不同操作系統的圖形庫所提供的功能是不完全一樣,所以在一個平台上存在的功能在另外一個平台上則可能不存在。
這就導致一些應用程序在測試時界面非常美觀,而一旦移植到其他的操作系統平台上後就可能變得“慘不忍睹”。為了實現Java語言”一次編譯,到處運行”,AWT 不得不通過犧牲功能來實現其平台無關性,其所提供的圖形功能被定格為各種通用型操作系統所提供的圖形功能的交集。
由於AWT 是依靠本地方法來實現其功能的,所以通常把AWT組件稱為重量級組件。
java怎麼實現這個圖形化界面
java圖形化界面還是有很多內容要學習的,可以參考 如下實例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
public class Test extends JFrame{
MyPanel mp=null;
public static void main(String[] args){
// TODO Auto-generated method stub
Test jf= new Test();
}
public Test(){
mp=new MyPanel();
this.add(mp);
//設置標題
this.setTitle(“繪圖”);
//設置窗體大小
this.setSize(400, 300);
//設置窗體的位置
this.setLocation(100,100);
//限制窗體的大小
this.setResizable(false);
//關閉窗體時,同時退出java虛擬機
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//顯示窗體
this.setVisible(true);
}
}
//定義一個MyPanel(我自己的面板,用於繪圖和實現繪圖區域)
class MyPanel extends JPanel
{
//覆蓋JPanel的paint方法
//Graphics是繪圖的重要類,可以把它理解成一隻畫筆
public void paint(Graphics g)
{
//1。調用父類函數完成初始化
super.paint(g);
// //畫圓
// g.drawOval(100, 100, 20, 20);
// //畫直線
// g.drawLine(50, 150,150, 200);
// //畫矩形邊框
// g.drawRect(150, 150, 30, 40);
//
// //設置顏色。默認為黑色
// g.setColor(Color.blue);
// //填充矩形
// g.fillRect(10, 10, 20, 30);
//畫弧形
g.drawArc(200,10, 100,150, 120,-80);
//在面板上畫圖片
Image im=Toolkit.getDefaultToolkit().getImage(Panel.class.getResource(“圖片路徑”));
//顯示圖片
g.drawImage(im, 10, 10,200,180,this);
//畫字
g.setColor(Color.red);
g.setFont(new Font(“華文彩雲”,Font.BOLD,20));
g.drawString(“要寫的字”, 80,220);
}
}
在Java圖形用戶界面編程中,若顯示一些不需要修改的文本信息,一般是使用什麼類的對
input 輸入框有disabled屬性,加個這文本信息變成灰色的,就無法編輯了
原創文章,作者:XIODW,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/128211.html