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( ) ),來設(shè)置窗口類。
JFrame的構(gòu)造方法
- JFrame():創(chuàng)建一個(gè)無標(biāo)題的窗口。
- JFrame(String title):創(chuàng)建一個(gè)指定窗口標(biāo)題的窗口。
設(shè)置方法

下面來介紹一下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)容面板,可以通過該方法向內(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類來創(chuàng)建窗口
也可以 直接定義JFrame類來創(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)文章
SpringBoot 多環(huán)境開發(fā)實(shí)戰(zhàn)(從配置、管理與控制)
本文詳解SpringBoot多環(huán)境配置,涵蓋單文件YAML、多文件模式、Maven Profile分組及激活策略,通過優(yōu)先級(jí)控制靈活切換環(huán)境,實(shí)現(xiàn)配置分離、協(xié)同管理,提升項(xiàng)目穩(wěn)定性與迭代效率,感興趣的朋友跟隨小編一起看看吧2025-08-08
Java HttpClient實(shí)現(xiàn)socks代理的示例代碼
這篇文章主要介紹了Java HttpClient 實(shí)現(xiàn) socks 代理的示例代碼,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下2020-11-11
基于SpringBoot和Dify實(shí)現(xiàn)流式響應(yīng)輸出
這篇文章主要為大家詳細(xì)介紹了如何基于SpringBoot和Dify實(shí)現(xiàn)流式響應(yīng)輸出效果,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以參考一下2025-03-03
Mybatis實(shí)現(xiàn)指定sql返回值類型
文章介紹了Mybatis中處理不同返回值情況的方法,包括返回值只有一個(gè)和有多個(gè)的情況,對(duì)于返回值只有一個(gè),可以直接返回該值;對(duì)于多個(gè)返回值,可以使用POJO對(duì)象、List集合或Map集合進(jìn)行封裝,每種方法都有其適用的場(chǎng)景2025-12-12

