国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Java——GUI(圖形用戶界面)

這篇具有很好參考價(jià)值的文章主要介紹了Java——GUI(圖形用戶界面)。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

學(xué)習(xí)目標(biāo):

1、掌握布局管理器、AWT事件處理機(jī)制以及常用事件

2、熟悉Swing組件的使用

3、了解GUI開發(fā)的相關(guān)原理和技巧

GUI全稱是GraphicalUser Interface,即圖形用戶界面。顧名思義,就是應(yīng)用程序提供給用戶操作的圖形界面,包括窗口、菜單、按鈕、工具欄和其他各種圖形界面元素。目前,圖形用戶界面已經(jīng)成為一種趨勢,幾乎所有的程序設(shè)計(jì)語言都提供了GUI設(shè)計(jì)功能。Java中針對GUI設(shè)計(jì)提供了豐富的類庫,這些類分別位于java.awt和javaxswing包中,簡稱為AWT和Swing。其中,AWT是SUN公司最早推出的一套API,它需要利用本地操作系統(tǒng)所提供的圖形庫,屬于重量級(jí)組件,不跨平臺(tái),它的組件種類有限,可以提供基本的GUI設(shè)計(jì)工具,卻無法實(shí)現(xiàn)目前GUI設(shè)計(jì)所需的所有功能。隨后,SUN公司對AWT進(jìn)行改進(jìn),提供了Swing組件,Swing組件由純Java語言編寫,屬于輕量級(jí)組件,可跨平臺(tái),Swing不僅實(shí)現(xiàn)了AWT中的所有功能,而且提供了更加豐富的組件和功能,足以滿足GUI設(shè)計(jì)的一切需求。Swing會(huì)用到AWT中的許多知識(shí),掌握了AWT,學(xué)習(xí)Swing就變成了一件很容易的事情,因此本章將從AWT開始學(xué)習(xí)圖形用戶界面。

8.1 AWT概述

AWT是用于創(chuàng)建圖形用戶界面的一個(gè)工具包,它提供了一系列用于實(shí)現(xiàn)圖形界面的組件,如窗口、按鈕、文本框、對話框等。在JDK中針對每個(gè)組件都提供了對應(yīng)的Java類,這些類都位于iava.awt包中,接下來通過一個(gè)圖例來描述這些類的繼承關(guān)系,如圖所示

Java——GUI(圖形用戶界面)?從圖的繼承關(guān)系可以看出,在AWT中組件分為兩大類,這兩類的基類分別是Component和MenuComponent。其中,MenuComponent是所有與菜單相關(guān)組件的父類,Component則是除菜單外其他AWT組件的父類,它表示一個(gè)能以圖形化方式顯示出來,并可與用戶交互的對象。

Component類通常被稱為組件,根據(jù)Component的不同作用,可將其分為基本組件類和容器類?;窘M件類是諸如按鈕、文本框之類的圖形界面元素,而容器類則是通過Component的子類Container實(shí)例化的對象。Container類表示容器它是一種特殊的組件,可以用來容納其他組件。Container容器又分為兩種類型分別是Window和Panel,接下來對兩種類型進(jìn)行詳細(xì)講解。

Window類是不依賴其他容器而獨(dú)立存在的容器,它有兩個(gè)子類,分別是Frame類和Dialog類。Frame類用于創(chuàng)建一個(gè)具有標(biāo)題欄的框架窗口,作為程序的主界面,Dialog類用于創(chuàng)建一個(gè)對話框,實(shí)現(xiàn)與用戶的信息交互,如圖所示

Java——GUI(圖形用戶界面)

Panel也是一個(gè)容器,但是它不能單獨(dú)存在,只能存在其他容器 (Window或其子類)中,一個(gè)Panel對象代表了一個(gè)長方形的區(qū)域,在這個(gè)區(qū)域中可以容納其他組件。在程序中通常會(huì)使用Panel來實(shí)現(xiàn)一些特殊的布局。

package cn.itcast.chapter08.example01;

import java.awt.Frame;

public class Example01 {
	public static void main(String[] args) {
		//建立一個(gè)新窗體對象
		Frame f = new Frame("我的窗體!");
		//設(shè)置窗體的寬和高
		f.setSize(400, 300);
		//設(shè)置窗體在屏幕中所處的位置(參數(shù)是左上角坐標(biāo))
		f.setLocation(300, 200);
		//設(shè)置窗體可見
		f.setVisible(true);
		
	}
}

?Java——GUI(圖形用戶界面)

8.2 布局管理器?

8.1小節(jié)提到過,組件不能單獨(dú)存在,必須放置于容器當(dāng)中,而組件在容器中的位置和尺寸是由布局管理器來決定的。在java.awt包中提供了五種布局管理器,分別是FlowLayout (流式布局管理器) 、BorderLayout (邊界布局管理器GridLayout(網(wǎng)格布局管理器) 、GridBagLayout (網(wǎng)格包布局管理器)和CardLayout (卡片布局管理器)。每個(gè)容器在創(chuàng)建時(shí)都會(huì)使用一種默認(rèn)的布局管理器,在程序中可以通過調(diào)用容器對象的setLayout()方法設(shè)置布局管理器通過布局管理器來自動(dòng)進(jìn)行組件的布局管理。例如把一個(gè)Frame窗體的布局管理器設(shè)置為FlowLayout,代碼如下所示:

Java——GUI(圖形用戶界面)

?FlowLayout

流式布局管理器 (FlowLayout) 是最簡單的布局管理器,在這種布局下,容器會(huì)將組件按照添加順序從左向右放置。當(dāng)?shù)竭_(dá)容器的邊界時(shí),會(huì)自動(dòng)將組件放到下一行的開始位置。這些組件可以左對齊、居中對齊(默認(rèn)方式)或右對齊的方式排列。FlowLayout對象有三個(gè)構(gòu)造方法,如表所示

Java——GUI(圖形用戶界面)

表中,列出了FlowLayout的三個(gè)構(gòu)造方法,其中,參數(shù)align決定組件在每行中相對于容器邊界的對齊方式,可以使用該類中提供的常量作為參數(shù)傳遞給構(gòu)造方法,其中FlowLayout.LEFT用于表示左對齊、FlowLayout.RIGHT用于表示右對齊FlowLayout.CENTER用于表示居中對齊。參數(shù)hgap和參數(shù)vgap分別設(shè)定組件之間的水平和垂直間隙,可以填入一個(gè)任意數(shù)值。

import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;

public class Example02 {
	public static void main(String[] args) {
		//創(chuàng)建一個(gè)名為FlowLayout的窗體
		Frame f = new Frame("FlowLayout");
		//設(shè)置窗體中的布局管理器FlowLayout,所有組件左對齊,水平間距為20,垂直間距30
		f.setLayout(new FlowLayout(FlowLayout.LEFT, 20, 30));
		//設(shè)置窗體的大小
		f.setSize(220, 300);
		//設(shè)置窗體顯示位置
		f.setLocation(300, 200);
		//把按鈕添加到窗口
		f.add(new Button("第1個(gè)按鈕"));
		f.add(new Button("第2個(gè)按鈕"));
		f.add(new Button("第3個(gè)按鈕"));
		f.add(new Button("第4個(gè)按鈕"));
		
		//設(shè)置窗體可見
		f.setVisible(true);
		
	}
}

?Java——GUI(圖形用戶界面)

BorderLayout

BorderLayout (邊界布局管理器) 是一種較為復(fù)雜的布方式,它將容器劃分為五個(gè)區(qū)域,分別是東(EAST)、南(SOUTH)、西(WEST)、北(NORTH)、中(CENTER)。組件可以被放置在這五個(gè)區(qū)域中的任意一個(gè)。BorderLayout布局的效果如圖所示

Java——GUI(圖形用戶界面)

從圖可以看出BorderLayout邊界布局管理器,將容器劃分為五個(gè)區(qū)域,其中箭頭是指改變?nèi)萜鞔笮r(shí),各個(gè)區(qū)域需要改變的方向。也就是說,在改變?nèi)萜鲿r(shí)NORTH和SOUTH區(qū)域高度不變長度調(diào)整,WEST和EAST區(qū)域?qū)挾炔蛔兏叨日{(diào)整CENTER會(huì)相應(yīng)進(jìn)行調(diào)整。?

當(dāng)向BorderLayout布局管理器的容器中添加組件時(shí),需要使用add(Componentcomp,Object constraints)方法。其中參數(shù)comp表示要添加的組件,constraints指定將組件添加到布局中的方式和位置的對象,它是一個(gè)Obiect類型,在傳參時(shí)可以使用BorderLayout類提供的5個(gè)常量,它們分別是EAST、SOUTH、WEST、NORTH和CENTER。

案例代碼
接下來通過一個(gè)案例來演示一下BorderLayout布局管理器對組件布局的效果:

package cn.itcast.chapter08.example03;

import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Frame;

public class Example03 {
	public static void main(String[] args) {
		
		Frame f = new Frame("BorderLayout");	//創(chuàng)建一個(gè)BorderLayout的窗體
		f.setLayout(new BorderLayout());	//設(shè)置窗體中的布局管理器
		f.setSize(300, 300);	//設(shè)置窗體大小
		f.setLocation(300, 200);	//設(shè)置窗體顯示位置
		f.setVisible(true);		//設(shè)置窗體可見
		//下面代碼是創(chuàng)建5個(gè)按鈕,分別用于填充BorderLayout的5個(gè)區(qū)域
		Button but1 = new Button("東部");
		Button but2 = new Button("西部");
		
		Button but3 = new Button("南部");
		Button but4 = new Button("北部");
		Button but5 = new Button("中部");
		
		//將創(chuàng)建好的按鈕添加到窗體中,并設(shè)置按鈕所在區(qū)域
		f.add(but1,BorderLayout.EAST);
		f.add(but2,BorderLayout.WEST);
		f.add(but3,BorderLayout.SOUTH);
		f.add(but4,BorderLayout.NORTH);
		f.add(but5,BorderLayout.CENTER);
		
		
	}

}

Java——GUI(圖形用戶界面)

?GridLayout

GridLayout(網(wǎng)格布局管理器) 使用縱橫線將容器分成n行m列大小相等的網(wǎng)格每個(gè)網(wǎng)格中放置一個(gè)組件。添加到容器中的組件首先放置在第1行第1列(左上角)的網(wǎng)格中,然后在第1行的網(wǎng)格中從左向右依次放置其他組件,行滿后繼續(xù)在下一行中從左到右放置組件。與FlowLayout不同的是,放置在GridLayout布局管理器中的組件將自動(dòng)占據(jù)網(wǎng)格的整個(gè)區(qū)域。

接下來學(xué)習(xí)下GridLayout的構(gòu)造方法,如表所示

Java——GUI(圖形用戶界面)

表中,列出了GridLayout的三個(gè)構(gòu)造方法,其中,參數(shù)rows代表行數(shù),cols代表列數(shù),hgap和vgap規(guī)定水平和垂直方向的間隙。水平間隙指的是網(wǎng)格之間的水平距離,垂直間隙指的是網(wǎng)格之間的垂直距離。

案例代碼

接下來通過一個(gè)案例演示GridLayout布局的用法 :

package cn.itcast.chapter08.example04;

import java.awt.Button;
import java.awt.Frame;
import java.awt.GridLayout;

public class Example04 {
	public static void main(String[] args) {
		Frame f = new Frame("GridLayout");	//創(chuàng)建一個(gè)GridLayout窗體
		f.setLayout(new GridLayout(3,3));	//設(shè)置GridLayout網(wǎng)格布局管理器,該窗體網(wǎng)格為3*3
		f.setSize(300, 300);	//設(shè)置窗體大小
		f.setLocation(400, 300);	//設(shè)置窗體位置
		
		
		//循環(huán)添加9個(gè)按鈕到GridLayout
		for (int i = 1; i <= 9; i++) {
			Button but = new Button("but"+i);
			f.add(but);	//想窗體中添加按鈕
		}
		f.setVisible(true); //設(shè)置窗體可見
	}
}

Java——GUI(圖形用戶界面)

GridBagLayout?

GridBagLayout (網(wǎng)格包布局管理器)是最靈活、最復(fù)雜的布局管理器。與GridLayout布局管理器類似,不同的是,它允許網(wǎng)格中的組件大小各不相同而且允許一個(gè)組件跨越一個(gè)或者多個(gè)網(wǎng)格

使用GridBagLayout布局管理器的步驟如下:
(1)創(chuàng)建GridbagLayout布局管理器,并使容器采用該布局管理器

Java——GUI(圖形用戶界面)

(2)創(chuàng)建GridBagontraints對象(布局約束條件),并設(shè)置該對象的相關(guān)屬性?

Java——GUI(圖形用戶界面)

?(3)調(diào)用GridBagLayout對象的setConstraints()方法建立GridBagConstraints對象和受控組件之間的關(guān)聯(lián)

Java——GUI(圖形用戶界面)

(4)向容器中添加組件

Java——GUI(圖形用戶界面)

GridBagConstraints對象可以重復(fù)使用,只需要改變它的屬性即可。如果要向容器中添加多個(gè)組件,則重復(fù) (2) 、 (3) 、 (4) 步驟
從上面的步可以看出,使用GridBagLayout布局管理器的關(guān)鍵在于GridBagConstraints對象,它才是控制容器中每個(gè)組件布局的核心類,在GridBagConstraints類中有很多表示約束的屬性,下面對GridBagConstraints類的一些常用屬性進(jìn)行介紹,如表所示。?文章來源地址http://www.zghlxwxcb.cn/news/detail-490909.html

到了這里,關(guān)于Java——GUI(圖形用戶界面)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 如何設(shè)計(jì)和構(gòu)建一個(gè)PyQt圖形用戶界面(GUI)

    歡迎來到PyQt的世界!設(shè)計(jì)和構(gòu)建一個(gè)圖形用戶界面(GUI)可以是一項(xiàng)令人興奮且有趣的任務(wù)。 首先,你需要確保已經(jīng)安裝了PyQt。如果你還沒有安裝,可以通過以下命令在你的Python環(huán)境中安裝: 現(xiàn)在,讓我們開始設(shè)計(jì)你的第一個(gè)PyQt GUI! 第一步:創(chuàng)建窗口 想象一下,如果你

    2024年02月12日
    瀏覽(30)
  • Python tkinter(GUI編程)模塊教程:打造出精美圖形用戶界面

    隨著程序越來越復(fù)雜,命令行已經(jīng)無法滿足我們的需求,圖形化界面已成為當(dāng)前主流的界面設(shè)計(jì)。在Python中,tkinter是一種簡單易用的GUI編程工具,可以幫助我們快速地創(chuàng)建圖形用戶界面。本文將通過實(shí)例詳細(xì)介紹如何使用Python tkinter模塊來打造出精美的圖形用戶界面。 安裝

    2024年02月13日
    瀏覽(33)
  • MCU 的 TOP 15 圖形GUI庫:選擇最適合你的圖形用戶界面(三)

    MCU 的 TOP 15 圖形GUI庫:選擇最適合你的圖形用戶界面(三)

    在嵌入式系統(tǒng)開發(fā)中,選擇一個(gè)合適的 圖形用戶界面(GUI)庫 是至關(guān)重要的。在屏幕上顯示的時(shí)候,使用 現(xiàn)成的圖形庫 ,這樣開發(fā)人員就不需要弄清楚底層任務(wù),例如如何繪制像素、線條、形狀,如果再高級(jí)一點(diǎn),則可以繪制某些對象,例如窗口、按鈕等。 前兩期我們介

    2024年02月03日
    瀏覽(19)
  • 【Python GUI庫】六個(gè)圖形用戶界面庫優(yōu)缺點(diǎn)及實(shí)例預(yù)覽

    在Python中,有很多庫可以幫助創(chuàng)建圖形用戶界面(GUI)。以下是一些流行的選擇: Python的標(biāo)準(zhǔn)庫之一,用于創(chuàng)建窗口、按鈕、滑動(dòng)條和其他常見的GUI元素。對于簡單的應(yīng)用程序,Tkinter可能就足夠了。 Tkinter的優(yōu)點(diǎn): 1.Tkinter是Python的標(biāo)準(zhǔn)GUI庫,易于學(xué)習(xí)和使用,提供了基本的GU

    2024年02月03日
    瀏覽(25)
  • 【Unity 3D】圖形界面GUI的講解及在C#中實(shí)現(xiàn)用戶登錄界面的實(shí)戰(zhàn)(附源碼)

    【Unity 3D】圖形界面GUI的講解及在C#中實(shí)現(xiàn)用戶登錄界面的實(shí)戰(zhàn)(附源碼)

    需要源碼請點(diǎn)贊關(guān)注收藏后評(píng)論區(qū)留言并且私信~~~ 在游戲開發(fā)過程中,游戲界面占據(jù)了非常重要的地位,玩家啟動(dòng)游戲的時(shí)候,首先看到的就是游戲的UI,其中包含圖片、按鈕和高級(jí)控件等等,UGUI和GUI是Unity 3D中最常用的兩個(gè)UI系統(tǒng)。 GUI是Graphical User Interface的縮寫,Unity的圖

    2024年02月10日
    瀏覽(19)
  • Python實(shí)現(xiàn)交互窗口功能(Tkinter;面向?qū)ο蟮膱D形化用戶界面(GUI)模塊)(一)

    Python實(shí)現(xiàn)交互窗口功能(Tkinter;面向?qū)ο蟮膱D形化用戶界面(GUI)模塊)(一)

    本文主要介紹Python中實(shí)現(xiàn)GUI的Tkinter模塊以及模塊中的控件及其使用 Python自帶了tkinter 模塊,面向?qū)ο蟮腉UI工具包 TK 的Python編程接口,提供了快速便利地創(chuàng)建GUI應(yīng)用程序的方法。 其圖像化編程的基本步驟通常包括: 導(dǎo)入 tkinter 模塊 創(chuàng)建 GUI 根窗體 添加人機(jī)交互控件并編寫相

    2024年02月08日
    瀏覽(18)
  • java 圖形用戶界面

    java 圖形用戶界面

    目錄 Swing與AWT概述 Swing概述——組件顯示 ?框架與窗體 創(chuàng)建框架對象 框架Frame類結(jié)構(gòu) ?框架對象的創(chuàng)建及常用方法 創(chuàng)建Swing窗體對象 Swing窗體JFrame 類結(jié)構(gòu) ?Swing 窗體對象的創(chuàng)建 ?窗體對象常用屬性 常用組件——文本組件 JLabel JTextField JPasswordField JTextArea?編輯 ?Jlist文本列表

    2024年02月06日
    瀏覽(23)
  • 【老生談算法】基于matlab時(shí)域頻域處理的語音信號(hào)變聲處理系統(tǒng)設(shè)計(jì)與算法原理(論文+程序源碼+GUI圖形用戶界面)——變聲算法

    【老生談算法】基于matlab時(shí)域頻域處理的語音信號(hào)變聲處理系統(tǒng)設(shè)計(jì)與算法原理(論文+程序源碼+GUI圖形用戶界面)——變聲算法

    大家好,今天給大家介紹基于matlab的語音信號(hào)變聲處理系統(tǒng)設(shè)計(jì)與算法原理(論文+程序源碼)。 運(yùn)用matlab軟件實(shí)現(xiàn)對聲音的變聲處理,利用離散付里葉變換進(jìn)行頻譜分析;設(shè)計(jì)數(shù)字濾波器組;通過時(shí)域和頻域方法做出各種音效效果,實(shí)現(xiàn)變速(慢放、快放),變調(diào)(頻譜左

    2024年02月04日
    瀏覽(43)
  • 深入探索Java GUI編程:構(gòu)建交互豐富的用戶界面

    Java GUI編程是構(gòu)建交互式用戶界面的關(guān)鍵技術(shù)之一。本文將深入研究Java GUI編程的基本概念和原理,介紹Swing和JavaFX兩種主流的GUI框架,并通過實(shí)例演示它們的使用。讀者將學(xué)習(xí)如何創(chuàng)建各種組件、布局管理、事件處理以及美化界面,從而構(gòu)建出功能豐富、美觀而又用戶友好的

    2024年02月16日
    瀏覽(24)
  • 低光圖像增強(qiáng):利用深度學(xué)習(xí)的LLNet與圖形用戶界面進(jìn)行優(yōu)化的實(shí)踐

    第一部分:引言與LLNet概述 隨著技術(shù)的快速進(jìn)步,圖像增強(qiáng)已經(jīng)變得日益重要。低光照條件下的圖像經(jīng)常受到噪聲、模糊和顏色失真的影響,這使得圖像的質(zhì)量受到損害。為了解決這一問題,研究者們開發(fā)了多種技術(shù)來增強(qiáng)低光圖像。其中,深度學(xué)習(xí)技術(shù)因其卓越的性能和廣

    2024年02月12日
    瀏覽(15)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包