Java?swing創(chuàng)建一個(gè)窗口的簡(jiǎn)單步驟
swing組件分類:
- 頂層容器:JFrame、JApplet、JDialog、JWindow
- 中間容器:JPanel、JScrollPane、JSplitPane、JToolBar
- 基本控件: ImageIcon(圖標(biāo)),JLabel(標(biāo)簽),ITextField(文本框),JTextArea(文本區(qū)域),JScrollPane(可滾動(dòng)窗格),JScrollBar(滾動(dòng)條),ICheckBox(復(fù)選框),JRadioButton(單選按鈕),JComboBox(下拉式列表和組合框)。
創(chuàng)建界面
了解完之后,我們開始創(chuàng)建窗口。
把界面類聲明為JFrame或JWindow的子類。
要?jiǎng)?chuàng)建swing程序,首先需要?jiǎng)?chuàng)建一個(gè)表示圖形界面(窗口)的類。這個(gè)類的對(duì)象被當(dāng)作容器,用于存儲(chǔ)其他組件。
大多數(shù)情況下,采用JWindow類或者JFrame類。
- JWindow是可被顯示到用戶界面上。簡(jiǎn)單窗口沒有標(biāo)題欄,最大化、最小化和關(guān)閉按鈕,也沒有操作系統(tǒng)普通窗口常用的其他元素。
- 包括這些窗口管理特性的窗口被稱為JFrame。(因此一般優(yōu)先JFrame)
注意:JWindow和JFrame都是抽象類,所以我們需要?jiǎng)?chuàng)建它們的子類。
把窗口類聲明為JFrame或JWindow的子類。
在窗口類類的構(gòu)造方式中調(diào)用父類的構(gòu)造方法( 用super( ) ),來(lái)設(shè)置窗口類。
JFrame的構(gòu)造方法
- JFrame():創(chuàng)建一個(gè)無(wú)標(biāo)題的窗口。
- JFrame(String title):創(chuàng)建一個(gè)指定窗口標(biāo)題的窗口。
設(shè)置方法
下面來(lái)介紹一下JFrame提供的,設(shè)置窗口的方法:
方法名和參數(shù) | 方法概述 |
---|---|
setSize(int width, int height) | 設(shè)置窗口的大小,參數(shù)width和height分別表示窗口的寬度和高度。 |
setLocation(int x, int y) | 參數(shù)x和y分別表示窗口的坐標(biāo) |
setBounds(int a, int b, int width, int height) | 設(shè)置窗口的位置和大小,參數(shù)a和b表示窗口的初始位置,參數(shù)width和height表示窗口的寬度和高度。 |
setResizable(boolean b) | 設(shè)置窗口是否可調(diào)整大小,參數(shù)b為true表示可以調(diào)整大小,為false表示不可調(diào)整大小。 |
setVisible(boolean b) | 設(shè)置窗口是否可見,參數(shù)b為true表示可見,為false表示不可見。 |
setDefaultCloseOperation(int operation) | 設(shè)置窗口關(guān)閉時(shí)的操作,參數(shù)operation有多種取值可選 |
setExtendedState(int state): | 設(shè)置窗口的擴(kuò)展?fàn)顟B(tài),可以使窗口最大化、最小化或恢復(fù)大小 |
這些設(shè)置方法一般在窗口類的構(gòu)造方法中就書寫清楚,例如常見的標(biāo)題、大小、可見度、位置坐標(biāo)和關(guān)閉時(shí)的操作等等。
setDEfaultCloseOPeration(int operation)
下面是operation的范圍以及描述。
關(guān)閉窗體方式 | 描述 |
---|---|
EXIT_ON_CLOSE | 退出應(yīng)用程序,默認(rèn)窗口關(guān)閉 |
DO_NOTHING_ON_CLOSE | 什么都不做就將窗體關(guān)閉 |
DISPOSE_ON_CLOSE | 移除窗口的默認(rèn)窗口關(guān)閉操作 |
HIDE_ON_CLOSE | 隱藏窗口的默認(rèn)窗口關(guān)閉 |
import javax.swing.*; class jFrame extends JFrame { public jFrame (String title, int x, int y, int width, int height) { super(title); //調(diào)用父類構(gòu)造方法設(shè)置標(biāo)題 setBounds(x, y, width, height); //一步到位把位置和大小設(shè)置好 setVisible(true); //設(shè)置窗口可見性 setDefaultCloseOperation(EXIT_ON_CLOSE); //設(shè)置關(guān)閉方式 } } public class test { public static void main(String[] args) { jFrame frame = new jFrame("frame",100,100,500,500); } }
可以看到我們得到了一個(gè)標(biāo)題為frame的空白窗口。
操作方法
下面是窗口類的操作方法,后邊會(huì)對(duì)組件等進(jìn)行詳細(xì)講解。
方法名和參數(shù) | 方法概述 |
---|---|
add(Component comp) | 向容器中添加組件,參數(shù)comp為要添加的組件。 |
getContentPane() | 獲取窗口的內(nèi)容面板,可以通過(guò)該方法向內(nèi)容面板添加組件。 |
dispose() | 撤銷當(dāng)前窗口并釋放所有使用的資源 |
import javax.swing.*; class jFrame extends JFrame { public jFrame (String title, int x, int y, int width, int height) { super(title); //調(diào)用父類構(gòu)造方法設(shè)置標(biāo)題 setBounds(x, y, width, height); //一步到位把位置和大小設(shè)置好 setVisible(true); //設(shè)置窗口可見性 setDefaultCloseOperation(EXIT_ON_CLOSE); //設(shè)置關(guān)閉方式 JLabel jLabel = new JLabel("這是一個(gè)帶有標(biāo)題的窗口");//這是一個(gè)標(biāo)簽組件 jLabel.setHorizontalAlignment(SwingConstants.CENTER); //設(shè)置文本位置 add(jLabel); //調(diào)用add函數(shù)將標(biāo)簽組件添加到抽口當(dāng)中 } } public class test { public static void main(String[] args) { jFrame frame = new jFrame("frame",100,100,500,500); } }
可以看到我們得到了一個(gè)標(biāo)題為frame,內(nèi)容為"這是一個(gè)帶有標(biāo)題的窗口"的窗口。
直接定義JFrame類來(lái)創(chuàng)建窗口
也可以 直接定義JFrame類來(lái)創(chuàng)建窗口。
import javax.swing.*; import java.awt.*; public class test { public static void main(String[] args) { JFrame jFrame = new JFrame("jFrame"); jFrame.setBounds(300,300,500,500); jFrame.setVisible(true); jFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); Label label = new Label("label"); jFrame.add(label); } }
這么看其實(shí)直接定義JFrame比較簡(jiǎn)單,但是構(gòu)造子類結(jié)構(gòu)更加清晰。
總結(jié)
到此這篇關(guān)于Java swing創(chuàng)建一個(gè)窗口的文章就介紹到這了,更多相關(guān)Java swing創(chuàng)建窗口內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
用Maven插件生成Mybatis代碼的實(shí)現(xiàn)方法
本文主要介紹 Maven插件生成Mybatis代碼,現(xiàn)在做開發(fā)的朋友有好多用Maven 來(lái)管理代碼,這里給大家舉個(gè)例子,有需要的同學(xué)可以看下2016-07-07SpringBoot切面攔截@PathVariable參數(shù)及拋出異常的全局處理方式
這篇文章主要介紹了SpringBoot切面攔截@PathVariable參數(shù)及拋出異常的全局處理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08基于SpringMVC實(shí)現(xiàn)網(wǎng)頁(yè)登錄攔截
SpringMVC的處理器攔截器類似于Servlet開發(fā)中的過(guò)濾器Filter,用于對(duì)處理器進(jìn)行預(yù)處理和后處理。因此,本文將為大家介紹如何通過(guò)SpringMVC實(shí)現(xiàn)網(wǎng)頁(yè)登錄攔截功能,需要的小伙伴可以了解一下2021-12-12多個(gè)JDK版本(Java 8、Java 17、Java 21)下載和切換
為了在實(shí)際中可以任意選擇所需的JDK版本,需要將多個(gè)JDK版本進(jìn)行切換,本文主要介紹了多個(gè)JDK版本(Java 8、Java 17、Java 21)下載和切換,感興趣的可以了解一下2025-04-04Java實(shí)現(xiàn)四則混合運(yùn)算代碼示例
這篇文章主要介紹了Java實(shí)現(xiàn)四則混合運(yùn)算代碼示例,文中展示了詳細(xì)代碼,具有一定參考價(jià)值,需要的朋友可以了解下。2017-10-10