欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java Swing最詳細(xì)基礎(chǔ)知識(shí)總結(jié)

 更新時(shí)間:2021年05月10日 11:40:37   作者:紀(jì)文啊!  
這篇文章主要介紹了Java Swing最詳細(xì)基礎(chǔ)知識(shí)總結(jié),文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)Java Swing的小伙伴們有很好的幫助,需要的朋友可以參考下

一、簡(jiǎn)介

Swing 是一個(gè)為Java設(shè)計(jì)的GUI工具包。

Swing是JAVA基礎(chǔ)類的一部分。

Swing包括了圖形用戶界面(GUI)器件如:文本框,按鈕,分隔窗格和表。

Swing提供許多比AWT更好的屏幕顯示元素。它們用純Java寫(xiě)成,所以同Java本身一樣可以跨平臺(tái)運(yùn)行,這一點(diǎn)不像AWT。它們是JFC的一部分。它們支持可更換的面板和主題(各種操作系統(tǒng)默認(rèn)的特有主題),然而不是真的使用原生平臺(tái)提供的設(shè)備,而是僅僅在表面上模仿它們。這意味著你可以在任意平臺(tái)上使用JAVA支持的任意面板。輕量級(jí)組件的缺點(diǎn)則是執(zhí)行速度較慢,優(yōu)點(diǎn)就是可以在所有平臺(tái)上采用統(tǒng)一的行為。

二、Swing 組件的層次結(jié)構(gòu)

從上圖可以看出各組件之間的繼承關(guān)系,我們可以看到Container類下面有四個(gè)子類,這四個(gè)子類中,除了JComponent類以外,其余三個(gè)都是Java AWT包中的類,而JComponent是Java Swing所出現(xiàn)的類。Sun公司在設(shè)計(jì)Java Swing時(shí)用JComponent把容器和組件之間由Java AWT過(guò)渡到Java Swing,也就是說(shuō)大部分Java Swing中的容器和組件都繼承JComponent類。

Container類除了JComponent類之外,其余三個(gè)都是Java AWT中的容器,需要注意的是容器又分為頂級(jí)容器和中間容器。頂級(jí)容器是指圖形界面最外層的容器,如窗口(Window)。中間容器是指存放在頂級(jí)容器或者中間容器中的一種容器,如面板(Panel)。在實(shí)際編程中,要開(kāi)發(fā)一個(gè)界面應(yīng)該是這樣的,頂級(jí)容器在最外面(JFrame),其次是中間容器,放在窗體上(JPanel),最后是基本組件,放在中間容器上。這里需要注意的是,容器中除了可以存放基本組件外,還可以存放容器,如圖所示:

我們經(jīng)常使用的頂級(jí)容器是窗體(JFrame)和對(duì)話框(JDialog),使用的中間容器是面板(JPanel)。開(kāi)發(fā)中經(jīng)常使用的基本組件大部分用JComponent類下的子類。

Component類的主要方法有:

(1) void enable():使組件可用。

(2) void disable(): 使組件不可用

(3) void show():  顯示組件

(4) void paint(): 繪制圖形

(5) void repaint(): 刷新

Container類的主要方法有:

(1) void add(Component c):將指定組件加入到容器中。

(2) void setLayout(): 設(shè)置布局管理器。

所有的包含組件都可繼承或重載以上方法。

三、Swing組件

常用的Swing組件如下表所示: 

組件名稱 定義
JButton 代表Swing按鈕,按鈕可用帶一些圖片或文字
JCheckBox 代表Swing中的復(fù)選框組件
JComBox 代表下拉列表框,可以在下拉顯示區(qū)域顯示多個(gè)選項(xiàng)
JFrame 代表Swing的框架類
JDialog 代表Swing版本的對(duì)話框
JLabel 代表Swing中的標(biāo)簽組件
JRadioButton 代表Swing的單選按鈕
JList 代表能夠在用戶界面中顯示一系列條目的組件
JTextField 代表文本框
JPasswordField 代表密碼框
JTextArea 代表Swing中的文本區(qū)域
JOptionPane 代表Swing中的一些對(duì)話框

3.1 JFrame窗體組件

JFrame是獨(dú)立于瀏覽器的可獨(dú)立運(yùn)行的主窗口,通常用于開(kāi)發(fā)桌面應(yīng)用程序/JFrame具有邊界和標(biāo)題欄設(shè)置,其大小可以調(diào)整。JFrame中需要加入組件,也可以加入菜單,或在上面繪圖。

JFrame在程序中的語(yǔ)法格式如下:

JFrame jf=new JFrame(title);
Container container=jf.getContentPane();

jf:JFrame類的對(duì)象

container:Container類的對(duì)象,可以使用JFrame對(duì)象調(diào)用getContentPane()方法獲取。

我們應(yīng)該有這樣一個(gè)概念,Swing組件的窗體通常與組件和容器相關(guān),所以在JFrame對(duì)象創(chuàng)建完成后,需要調(diào)用getContentPane()方法將窗體轉(zhuǎn)換為容器,然后在容器中添加組件或設(shè)置布局管理器。通常,這個(gè)容器用來(lái)包含和顯示組件。如果需要將組件添加至容器,可以使用來(lái)自Cointainer類的add()方法進(jìn)行設(shè)置。例如:

container.add(new JButton("按鈕");

下面我們就用Java代碼做一個(gè)簡(jiǎn)單的窗體,如下所示:

package xmsj;
 
import java.awt.Color;
import java.awt.Container;
 
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingConstants;
import javax.swing.WindowConstants;
 
public class test1 {
	public static void main(String[] args){
		//創(chuàng)建一個(gè)窗體對(duì)象
		JFrame jf=new JFrame("這是一個(gè)JFrame窗體");
		//獲取一個(gè)容器,用來(lái)放置各種組件或布局管理器
		Container container=jf.getContentPane();
		JLabel jl=new JLabel("這是一個(gè)JFrame窗體"); //創(chuàng)建一個(gè)JLabel標(biāo)簽
		//使標(biāo)簽上的文字居中	
		jl.setHorizontalAlignment(SwingConstants.CENTER);
		//將標(biāo)簽添加到容器中
		container.add(jl);
		container.setBackground(Color.white);  //設(shè)置容器的背景顏色
		//設(shè)置窗體可見(jiàn)
		jf.setVisible(true);
		//設(shè)置窗體大小
		jf.setSize(200,150);
		//設(shè)置窗體關(guān)閉方式
		jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
	}
 
}

顯示如下圖所示:

上面的程序展示了如何創(chuàng)建一個(gè)簡(jiǎn)單的窗體,JFrame還有其想對(duì)應(yīng)的方法,如下所示:

JFrame組件中提供了如下兩個(gè)常用的構(gòu)造方法:

(1)JFrame():創(chuàng)建一個(gè)沒(méi)有窗口標(biāo)題的窗口框架。

(2)JFrame(String):創(chuàng)建一個(gè)指定窗口標(biāo)題的窗口框架。

JFrame的主要方法如下表所示:

方法 功能
addNotify() 創(chuàng)建一個(gè)對(duì)等的Frame
dispose() 清楚窗口對(duì)象
getIconImage() 獲得窗口的圖標(biāo)
getMenuBar() 獲得窗口的菜單欄
getTitle() 獲取窗口的標(biāo)題
paramString() 返回窗口的參數(shù)字符串
isResizable() 如果窗口大小可變,則返回真值
remove(MenuComponent) 從窗口中去掉指定的菜單欄
setIconImage(Image) 設(shè)置窗口的圖標(biāo)

3.2 JDialog窗體組件

JDialog窗體是Swing組件中的對(duì)話框,它繼承了AWT組件中的java.awt.Dialog類。

對(duì)話框(JDialog)與框架(JFrame)有一些相似,但它一般是一個(gè)臨時(shí)的窗口,主要用于顯示提示信息或接受用戶輸入。

所以,在對(duì)話框中一般不需要菜單條,也不需要改變窗口大小。此外,在對(duì)話框出現(xiàn)時(shí),可以設(shè)定禁止其他窗口的輸入,直到這個(gè)對(duì)話框被關(guān)閉。

在應(yīng)用程序中創(chuàng)建JDialog窗體需要實(shí)例化JDialog類,通常使用以下幾個(gè)JDialog類的構(gòu)造方法。

(1)public JDialog():創(chuàng)建一個(gè)沒(méi)有標(biāo)題和父窗體的對(duì)話框

  (2)   public JDialog(Frame f): 創(chuàng)建一個(gè)指定父窗體的對(duì)話框,但該窗體沒(méi)有標(biāo)題

(3)public JDialog(Frame f,boolean model):創(chuàng)建一個(gè)指定類型的對(duì)話框,并指定父窗體,但該窗體沒(méi)有指定標(biāo)題。

(4)public JDialog(Frame f,String titl):創(chuàng)建一個(gè)指定標(biāo)題的父窗體的對(duì)話框

(5)public JDialog(Frame f,String title,boolean model):創(chuàng)建一個(gè)指定標(biāo)題、窗體和模式的對(duì)話框

下面我們用代碼來(lái)實(shí)現(xiàn):

package njci.software.MyNotePad2018;
 
import java.awt.Container;
 
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
 
public class ConfigDialog extends JDialog {
 
	/**
	 * 
	 */
	private static final long serialVersionUID = -713398359834685238L;
	public ConfigDialog(JFrame frame){
		super(frame,"這是一個(gè)對(duì)話框",true);
		//Container container=getContentPane(); //創(chuàng)建一個(gè)容器
		//container.add(new JLabel("這是一個(gè)對(duì)話框")); //在容器中添加標(biāo)簽
		//添加內(nèi)部控件
		JPanel pnlConfig=new JPanel();
		pnlConfig.setLayout(null);
		JLabel lblWidth=new JLabel("寬度");
		JLabel lblHeight=new JLabel("高度");
		final JTextField txtWidth=new JTextField();
		final JTextField txtHeight=new JTextField();
		JButton btnSave=new JButton("保存");
		JButton btnCancel=new JButton("取消");
		
		//進(jìn)行布局
		
		lblWidth.setBounds(50,30,60,40);
		txtWidth.setBounds(150,30,160,40);
		lblHeight.setBounds(50,100,60,40);
		txtHeight.setBounds(150,100,160,40);
		btnSave.setBounds(50,160,100,40);
		btnCancel.setBounds(200,160,100,40);
		pnlConfig.add(lblWidth);
		pnlConfig.add(txtWidth);
		pnlConfig.add(lblHeight);
		pnlConfig.add(txtHeight);
		pnlConfig.add(btnSave);
		pnlConfig.add(btnCancel);
		this.add(pnlConfig);
		this.setSize(400,320);
		this.setResizable(false);//窗體大小不可改變
		this.setLocationRelativeTo(frame);;//居中顯示
		
	}
 
}
package javaswing;
 
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
 
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
 
public class MyFrame extends JFrame {
	private static final long serialVersionUID = 4232937812480671357L;
	public MyFrame(){
		final JFrame frmMain=new JFrame("我的第一個(gè)記事本");
		frmMain.setSize(400,300);
		frmMain.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
		frmMain.setLocationRelativeTo(null);  //居中顯示
		frmMain.setVisible(true);
		ConfigDialog dlgConfig=new ConfigDialog(frmMain);
		dlgConfig.setVisible(true);
		
		
		
		
	}
 
	/**
	 * 
	 */
	
	
public static void main(String[] args){
	new MyFrame();
	
}
}

運(yùn)行效果如下所示:

3.3 JLabel組件

在Swing中顯示文本或提示信息的方法是使用標(biāo)題,它支持文本字符串和圖標(biāo)。在應(yīng)用程序的用戶界面中,一個(gè)簡(jiǎn)短的文本標(biāo)簽可以使用戶知道這些組件的目的,所以標(biāo)簽在Swing中是比較常用的組件。

標(biāo)簽由JLabel類定義,它的父類為JComponent類。

JLabel組件顯示的是靜態(tài)文本或者圖片,在通常情況下是不能編輯的,只起到提示的作用。觀察QQ登錄界面輸入框左側(cè)的頭像,他就可以用JLabel組件實(shí)現(xiàn)。

JLabel組件中主要的構(gòu)造方法如下:

(1)JLabel():創(chuàng)建空的標(biāo)簽。

(2)JLabel(String):創(chuàng)建一個(gè)帶初始字符串的標(biāo)簽。

(3)JLabel(Icon):創(chuàng)建一個(gè)帶有指定圖像的標(biāo)簽。

JLabel的主要方法見(jiàn)下表所示:

方法 功能
setText(String) 設(shè)置顯示內(nèi)容
getText() 獲取顯示內(nèi)容
getAlignment() 獲取對(duì)齊方式
setAlignment() 設(shè)置對(duì)齊fang

3.4 文本域

文本域一般用來(lái)讓用戶輸入姓名、信用卡號(hào)這樣的信息,它是一個(gè)能夠接收用戶的鍵盤輸入的小塊區(qū)域。

在創(chuàng)建文本域時(shí),參數(shù)類型有四種:空的、空的并且具有指定長(zhǎng)度、帶有初始文本內(nèi)容和帶有初始文本內(nèi)容并具有指定長(zhǎng)度的。

文本域的主要方法如下所示:

方法 功能
getColumns() 返回文本域的列數(shù)
getEchoChar() 返回用于回顯的字符
setEchoCharacter(Char) 設(shè)置文本域的回顯字符
setEditable(Boolean) 設(shè)置文本域是否為只讀狀態(tài)
setText(String) 設(shè)置文本域中的文本值
getText() 返回文本域中的輸入文本值

3.5 按鈕

幾乎所有的交互式程序中都會(huì)有按鈕,它是一種交互能力強(qiáng)且交互方便的控件,這個(gè)組件提供了“按下并動(dòng)作”的基本用戶界面。

構(gòu)造方法如下:

(1):JButton():建立一個(gè)沒(méi)有標(biāo)示字符串的新按鈕類對(duì)象。

(2):JButton(String label):建立一個(gè)標(biāo)示字符串為label的新按鈕類對(duì)象。

下面通過(guò)代碼實(shí)現(xiàn):

package javaswing;
 
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
 
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
 
public class MyFrame extends JFrame {
	private static final long serialVersionUID = 4232937812480671357L;
	public MyFrame(){
		final JFrame frmMain=new JFrame("我的第一個(gè)記事本");
		frmMain.setSize(400,300);
		frmMain.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
		frmMain.setLocationRelativeTo(null);  //居中顯示
		frmMain.setVisible(true);
		//為按鈕添加一個(gè)單機(jī)事件
		JButton jbn=new JButton("系統(tǒng)配置");
		frmMain.add(jbn);
		
		
		
	}
 
	/**
	 * 
	 */
	
	
public static void main(String[] args){
	new MyFrame();
	
}
}

運(yùn)行效果如下所示:

四.布局管理器

在Swing中,每個(gè)組件在容器中都有一個(gè)具體位置和大小,而在容器中擺放各種組件時(shí)很難判斷其具體位置和大小。布局管理器提供了Swing組件安排、展示在容器中的方法及基本的布局功能。使用布局管理器較程序員直接在容器中控制Swing組件的位置和大小方便得多,可以有效地處理整個(gè)窗體的布局。Swing提供的常用布局管理器包括流布局管理器、邊界布局管理器和網(wǎng)格布局管理器。本節(jié)將探討Swing中常用的布局管理器。

4.1 絕對(duì)布局

在Swing中,除了使用布局管理器之外還可以使用絕對(duì)布局。絕對(duì)布局,就是硬性指定組件在容器中的位置和大小,可以使用絕對(duì)坐標(biāo)的方式來(lái)指定組件的位置。

(1)使用Container.setLayout(null)方法取消布局管理器

(2)  使用Component.setBounds()方法設(shè)置每個(gè)組件的大小與位置。

下面我們用代碼實(shí)現(xiàn)絕對(duì)布局:

package javaswing;
 
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
 
public class ConfigDialog extends JDialog {
 
	/**
	 * 
	 */
	private static final long serialVersionUID = -713398359834685238L;
	public ConfigDialog(JFrame frame){
		super(frame,"這是一個(gè)對(duì)話框",true);
		//Container container=getContentPane(); //創(chuàng)建一個(gè)容器
		//container.add(new JLabel("這是一個(gè)對(duì)話框")); //在容器中添加標(biāo)簽
		//添加內(nèi)部控件
		JPanel pnlConfig=new JPanel();
		pnlConfig.setLayout(null);
		JLabel lblWidth=new JLabel("寬度");
		JLabel lblHeight=new JLabel("高度");
		final JTextField txtWidth=new JTextField();
		final JTextField txtHeight=new JTextField();
		JButton btnSave=new JButton("保存");
		JButton btnCancel=new JButton("取消");
		
		//進(jìn)行絕對(duì)布局
		
		lblWidth.setBounds(50,30,60,40);
		txtWidth.setBounds(150,30,160,40);
		lblHeight.setBounds(50,100,60,40);
		txtHeight.setBounds(150,100,160,40);
		btnSave.setBounds(50,160,100,40);
		btnCancel.setBounds(200,160,100,40);
		pnlConfig.add(lblWidth);
		pnlConfig.add(txtWidth);
		pnlConfig.add(lblHeight);
		pnlConfig.add(txtHeight);
		pnlConfig.add(btnSave);
		pnlConfig.add(btnCancel);
		this.add(pnlConfig);
		this.setSize(400,320);
		this.setResizable(false);//窗體大小不可改變
		this.setLocationRelativeTo(frame);;//居中顯示
		
	}
 
 
	public static void main(String[] args) {
		//new ConfigDialog(frame);
 
	}
 
}

4.2 流布局管理器

流布局管理器是最基本的布局管理器,在整個(gè)容器中的布局正如其名,像“流”一樣從左到右擺放組件,知道占據(jù)了這一行的所有空間,然后再向下移動(dòng)一行。默認(rèn)情況下,組件在每一行都是居中排列的,但是通過(guò)設(shè)置也可以更改組件在每一行上的排列位置。

FlowLayout布局管理器是一種最簡(jiǎn)單的布局管理方法,是JPanel的默認(rèn)布局。它以流式的方式,自左向右,自上而下地放置容器中的組件,即組件按每行先后自左向右放置,一行放不下時(shí)換行。FlowLayout的默認(rèn)對(duì)齊方式為居中對(duì)齊,也可以手工設(shè)置為左對(duì)齊或右對(duì)齊。

FlowLayout中常用的構(gòu)造方法:

(1)FlowLayout():創(chuàng)建默認(rèn)的FlowLayout布局管理器。

(2)FlowLayout(int):以指定的對(duì)齊方式創(chuàng)建FlowLayout布局管理器。其中參數(shù):

FlowLayout.LEFT(左對(duì)齊)、FlowLayout.RIGHT(右對(duì)齊)、FlowLayout.CENTER(居中對(duì)齊)。

(3)FlowLayout(int,int,int);以指定的對(duì)齊方式及間距創(chuàng)建FlowLayout布局管理器。其中,第一個(gè)參數(shù)為對(duì)齊方式,第二個(gè)參數(shù)為組件間以及組件與容器邊之間的水平距離,第三個(gè)參數(shù)為組件之間以及組件與容器邊之間的垂直間距。

FlowLayout的主要方法如下表所示:

方法 功能
getAlignment() 返回對(duì)齊方式
getHgap() 返回組件水平間距或返回組件列間距
getVgap() 返回組件垂直間距或返回組件行間距
setAlignment 設(shè)置對(duì)齊方式
setHgap() 設(shè)置組件列間距
setVgap() 設(shè)置行間距

下面通過(guò)代碼實(shí)現(xiàn)FlowLayout的用法:

package javaswing;
 
import java.awt.Container;
import java.awt.FlowLayout;
 
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.WindowConstants;
 
public class FlowLayoutDemo extends JFrame{
	public FlowLayoutDemo(){
		setTitle("本窗體使用流布局管理器");      //設(shè)置窗體標(biāo)題
		Container c=getContentPane();
		//設(shè)置窗體使用流布局管理器,使組件右對(duì)齊,并且設(shè)置組件之間的水平間隔與垂直間隔
		setLayout(new FlowLayout(2,10,10));
		for(int i=0;i<10;i++){
			c.add(new JButton("按鈕"+i));
		}
		setSize(300,200);
		setVisible(true);
		setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
	}
	public static void main(String[] args){
		new FlowLayoutDemo();
 
	}
	}

運(yùn)行效果如下圖所示:

4.3 網(wǎng)格布局管理器

GridLayout布局管理器將容器區(qū)域劃分成m行m列,即一個(gè)個(gè)大小相等的格子,而容器中的組件就放入這些格子中,占用大小完全相同的一格。

GridLayout的創(chuàng)建方法如下:

(1)GridLayout():創(chuàng)建默認(rèn)的GridLayout布局,所有組件在一行中顯示。

(2)GridLayout(int,int)按指定行數(shù)和列數(shù)創(chuàng)建GridLayout布局。

(3)Gridlayout(int,int,int)按指定行數(shù)、列數(shù)、行間距和列間距創(chuàng)建GridLayout布局。

GridLayout的主要方法如下表所示:

方法 功能
getHgap() 返回組件水平間距
getVgap() 返回組件垂直間距
setHgap() 設(shè)置組件水平間距
setVgap() 設(shè)置組件垂直間距
getRows() 獲取網(wǎng)格的行數(shù)
getColumns() 獲取網(wǎng)格的列數(shù)
setRows() 設(shè)置網(wǎng)格的行數(shù)
setColumns() 設(shè)置網(wǎng)格的列數(shù)

向網(wǎng)格中加入組件有兩種方法:一種采用默認(rèn)順序,即從左向右、自上而下的順序;另一種是加入時(shí)指明網(wǎng)格位置。

具體代碼實(shí)現(xiàn)如下:

package javaswing;
 
import java.awt.Container;
import java.awt.GridLayout;
 
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.WindowConstants;
 
public class GridLayoutPosition extends JFrame{
	public GridLayoutPosition(){
		Container c=getContentPane();
		//設(shè)置容器使用網(wǎng)絡(luò)布局管理器,設(shè)置7行3列的網(wǎng)格,行間距為5,列間距為5
		setLayout(new GridLayout(7,3,5,5));
		for(int i=0;i<20;i++){
			c.add(new JButton("按鈕"+i)); //循環(huán)添加按鈕
		}
		setSize(300,300);
		setTitle("這是一個(gè)使用網(wǎng)格布局管理器的窗體");
		setVisible(true);
		setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
	}
	public static void main(String[] args){
		new GridLayoutPosition();
	}
 
}

運(yùn)行效果如下所示:

4.4 邊界布局管理器

在默認(rèn)不指定窗體布局的情況下,Swing組件的布局模式是邊界布局管理器,邊界布局器可以將容器劃分為東、南、西、北、中五個(gè)區(qū)域,可以將組件加入到這5個(gè)區(qū)域中。容器調(diào)用Container類的add()方法添加組件時(shí)可以設(shè)置此組件在邊界布局管理器中的區(qū)域,區(qū)域的控制可以由BorderLayout類中的成員變量來(lái)決定,這些成員變量的具體含義如下表所示:

成員變量 含義
BorderLayout.NORTH 在容器中添加組件時(shí),組件置于頂端
BorderLayout.SOUTH 在容器中添加組件時(shí),組件置于底端
BorderLayout.EAST 在容器中添加組件時(shí),組件置于右端
BorderLayout.WEST 在容器中添加組件時(shí),組件置于左端
BorderLayout.CENTER 在容器中添加組件時(shí),組件置于中間開(kāi)始填充,直到與其他組件邊界連接

下面用代碼實(shí)現(xiàn):

package javaswing;
 
import java.awt.BorderLayout;
import java.awt.Container;
 
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.WindowConstants;
 
public class BorderLayoutPosition extends JFrame{
	//定義組件擺放位置的數(shù)組
	String[] border={BorderLayout.CENTER,BorderLayout.NORTH,BorderLayout.SOUTH,BorderLayout.WEST,BorderLayout.EAST};
	String[] buttonName={"center button","north button","south button","west button","east button"};
	public BorderLayoutPosition(){
		setTitle("這個(gè)窗體使用邊界布局管理器");
		Container c=getContentPane(); //定義一個(gè)容器
		setLayout(new BorderLayout());  //設(shè)置容器為邊界布局管理器
		for(int i=0;i<border.length;i++){
			//在容器中添加按鈕,并設(shè)置按鈕布局
			c.add(border[i],new JButton(buttonName[i]));
		}
		setSize(350,250); //設(shè)置窗體大小
		setVisible(true);  //設(shè)置窗體可見(jiàn)
		//設(shè)置窗體關(guān)閉方式
		setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
	}
	public static void main(String[] args){
		new BorderLayoutPosition();
	}
	
 
}

實(shí)現(xiàn)效果如下圖所示:

到此這篇關(guān)于Java Swing最詳細(xì)基礎(chǔ)知識(shí)總結(jié)的文章就介紹到這了,更多相關(guān)Java Swing知識(shí)總結(jié)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳談Java中的事件監(jiān)聽(tīng)機(jī)制

    詳談Java中的事件監(jiān)聽(tīng)機(jī)制

    下面小編就為大家?guī)?lái)一篇詳談Java中的事件監(jiān)聽(tīng)機(jī)制。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-06-06
  • java實(shí)現(xiàn)圖片寫(xiě)入高清字體及帶邊框的方法

    java實(shí)現(xiàn)圖片寫(xiě)入高清字體及帶邊框的方法

    這篇文章主要介紹了java實(shí)現(xiàn)圖片寫(xiě)入高清字體及帶邊框的方法,涉及java針對(duì)圖片及文字的相關(guān)操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-07-07
  • Java8中的forEach使用及說(shuō)明

    Java8中的forEach使用及說(shuō)明

    這篇文章主要介紹了Java8中的forEach使用及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • SpringBoot中實(shí)現(xiàn)代理方式

    SpringBoot中實(shí)現(xiàn)代理方式

    這篇文章主要介紹了SpringBoot中實(shí)現(xiàn)代理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • Java實(shí)現(xiàn)世界上最快的排序算法Timsort的示例代碼

    Java實(shí)現(xiàn)世界上最快的排序算法Timsort的示例代碼

    Timsort?是一個(gè)混合、穩(wěn)定的排序算法,簡(jiǎn)單來(lái)說(shuō)就是歸并排序和二分插入排序算法的混合體,號(hào)稱世界上最好的排序算法。本文將詳解Timsort算法是定義與實(shí)現(xiàn),需要的可以參考一下
    2022-07-07
  • JavaWeb開(kāi)發(fā)入門第一篇必備知識(shí)講解

    JavaWeb開(kāi)發(fā)入門第一篇必備知識(shí)講解

    JavaWeb開(kāi)發(fā)入門第一篇主要內(nèi)容介紹的是必備知識(shí)、基礎(chǔ)知識(shí)、搭建JavaWeb應(yīng)用開(kāi)發(fā)環(huán)境,感興趣的小伙伴們可以參考一下
    2016-04-04
  • Java設(shè)計(jì)模式之外觀模式的實(shí)現(xiàn)方式

    Java設(shè)計(jì)模式之外觀模式的實(shí)現(xiàn)方式

    這篇文章主要介紹了Java設(shè)計(jì)模式之外觀模式的實(shí)現(xiàn)方式,外觀模式隱藏系統(tǒng)的復(fù)雜性,并向客戶端提供了一個(gè)客戶端可以訪問(wèn)系統(tǒng)的接口,這種類型的設(shè)計(jì)模式屬于結(jié)構(gòu)型模式,它向現(xiàn)有的系統(tǒng)添加一個(gè)接口,來(lái)隱藏系統(tǒng)的復(fù)雜性,需要的朋友可以參考下
    2023-11-11
  • Maven中optional和scope元素的使用弄明白了嗎

    Maven中optional和scope元素的使用弄明白了嗎

    這篇文章主要介紹了Maven中optional和scope元素的使用弄明白了嗎,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • SpringBoot3整合郵件服務(wù)實(shí)現(xiàn)郵件發(fā)送功能

    SpringBoot3整合郵件服務(wù)實(shí)現(xiàn)郵件發(fā)送功能

    本文介紹了spring boot整合email服務(wù),實(shí)現(xiàn)發(fā)送驗(yàn)證碼,郵件(普通文本郵件、靜態(tài)資源郵件、附件郵件),文中通過(guò)代碼示例介紹的非常詳細(xì),堅(jiān)持看完相信對(duì)你有幫助,需要的朋友可以參考下
    2024-05-05
  • SpringBoot快速構(gòu)建應(yīng)用程序方法介紹

    SpringBoot快速構(gòu)建應(yīng)用程序方法介紹

    這篇文章主要介紹了SpringBoot快速構(gòu)建應(yīng)用程序方法介紹,涉及SpringBoot默認(rèn)的錯(cuò)誤頁(yè)面,嵌入式Web容器層面的約定和定制等相關(guān)內(nèi)容,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-11-11

最新評(píng)論