Java圖形界面之JFrame,JLabel,JButton詳解
一、JFrame
package Demo03;
import javax.swing.*;
import java.awt.*;
public class JFrame01 {
public static void main(String[] args) {
JFrame f = new JFrame("第一個Swing窗體");
Dimension d = new Dimension(); // 創(chuàng)建一個Dimension 對象,通過設(shè)置這個對象去達(dá)到改變Frame窗體大小的目的
d.setSize(230,80); // set方法設(shè)置d對象大小
f.setSize(d); // 這里就是通過設(shè)置JFrame的大小為Dimension的大小的方法,去達(dá)到改變大小的目的
f.setBackground(Color.WHITE); // 設(shè)置顏色
Point p = new Point(300,200); // 設(shè)置坐標(biāo)點(diǎn),原理一樣
f.setLocation(p); // 原理一樣,因?yàn)樵O(shè)置的點(diǎn)是窗體的左上角,所以這么設(shè)置即可
f.setVisible(true); // 讓窗體顯示
/*
窗體首先需要能夠顯示出來
//f.setVisible(true);
以上便能夠使窗體顯示出來
然后是窗體的 大小以及位置,也就是約束
//f.setSize() 和 f.setLocation() 可以改變其大小和位置,也就是建立約束
其他的設(shè)置如底色等,如果缺省,會是白色
//f.setBackground(Color.WHITE);
*/
}
}
代碼截圖:


運(yùn)行結(jié)果:
照著代碼敲一遍,然后注釋掉一部分代碼,查看報錯提示或者運(yùn)行結(jié)果
從這個角度去學(xué)習(xí)也是可以的
二、JLabel
package Demo03;
import javax.swing.*;
import java.awt.*;
public class JFrame02 {
public static void main(String args[]){
JFrame frame = new JFrame("Welcome to Libra's learning space."); // 實(shí)例化窗口對象,這里主要是設(shè)置顯示文字內(nèi)容
JLabel lab = new JLabel("It is inside of learning space.",JLabel.CENTER); // 實(shí)例化標(biāo)簽文本,這里主要是設(shè)置顯示文字內(nèi)容
frame.add(lab); // 將標(biāo)簽添加進(jìn)窗口
frame.setSize(500,300); // 設(shè)置窗口大小
frame.setBackground(Color.WHITE); // 設(shè)置窗口底色
frame.setLocation(300,200); // 設(shè)置窗口位置
frame.setVisible(true); // 設(shè)置窗口顯示
/*
其他的組件需要通過添加才能夠在窗口上
//frame.add(lab);
這里傳入了兩個參數(shù),一個是文本內(nèi)容,一個是文本樣式,其中選擇了居中,可以通過拖動窗口來檢查是否居中
//JLabel lab = new JLabel("It is inside of learning space.",JLabel.CENTER);
在java中,所有的東西都是對象,所以都需要先實(shí)例化,也就是new一個出來,然后通過設(shè)置這個實(shí)例化后的對象進(jìn)行使用
其他的與上一張基本一致,這里不再贅述
*/
}
}
代碼截圖:

運(yùn)行結(jié)果:

三、JButton
package Demo03;
import javax.swing.*;
import java.awt.*;
public class JFrame03 {
public static void main(String args[]){
JFrame frame = new JFrame("Welcome to Libra's learning space."); // 實(shí)例化窗口對象,這里主要是設(shè)置顯示文字內(nèi)容
JButton but = new JButton("It is Button."); // 實(shí)例化按鈕
JLabel lab = new JLabel("This is Libra's learning space.",JLabel.CENTER); // 實(shí)例化標(biāo)簽對象
frame.add(but); // 將按鈕添加進(jìn)窗口
frame.add(lab); // 將標(biāo)簽添加進(jìn)窗口
frame.setSize(500,300); // 設(shè)置窗口大小
frame.setBackground(Color.WHITE); // 設(shè)置窗口底色
frame.setLocation(300,200); // 設(shè)置窗口位置
frame.setVisible(true); // 設(shè)置窗口顯示
but.setBounds(0,0,100,50); // 設(shè)置按鈕大小及位置
lab.setBounds(0,0,50,50);
/*
實(shí)例化標(biāo)簽組件是為了不讓按鈕默認(rèn)樣式生效,當(dāng)只有一個按鈕組件的時候,默認(rèn)填滿整個窗口,讀者可以自己手動嘗試一下,復(fù)制了代碼后將標(biāo)簽相關(guān)的代碼注釋掉
四個值都為int類型,分別是位置和大小
// but.setBounds(x,y,width,height);
按鈕的顯示文本可以像示例中這樣實(shí)例化時設(shè)置,也可以稍后設(shè)置
下面第一行和后兩行的效果是一樣的,讀者可以手動嘗試一下
// JButton but = new JButton("It is Button.");
// JButton but = new JButton();
// but.setLabel("It is Button.");
其他的與前幾張相差不大,這里不做贅述
*/
}
}
代碼截圖:

運(yùn)行結(jié)果:

四、小結(jié)
想要達(dá)到圖形化界面,那目的就是展示一些什么,例如圖片,文字等。
而這些不能憑空產(chǎn)生,需要有一個能夠裝載其的容器,也就是窗口,接下來需要展示的內(nèi)容都會在這個窗口上,窗口里。
窗口可以顯示出來,但是計算機(jī)不知道會是什么樣的,所以需要我們自己去設(shè)定其樣式。
樣式的設(shè)定可以缺省,一般來講缺省了不會報錯,因?yàn)槠渲皇怯幸粋€默認(rèn)值,所以缺省了會設(shè)定為默認(rèn)值,例如窗口底色,大小,位置
窗口的形狀等都可以自己去設(shè)定,具體的可以查閱官方文檔主動學(xué)習(xí)
JLabel中不止可以設(shè)置文字,還可以設(shè)置圖片,將圖像數(shù)據(jù)以byte數(shù)組的形式設(shè)置上去
那既然JLabel可以,JButton上也是可以的,具體的可以查閱官方文檔了解
到此這篇關(guān)于Java圖形界面之JFrame、JLabel、JButton詳解的文章就介紹到這了,更多相關(guān)Java JFrame、JLabel、JButton內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于resty?security的Api權(quán)限控制與事務(wù)支持
這篇文章主要為大家介紹了基于resty?security的Api權(quán)限控制與事務(wù)支持讓數(shù)據(jù)操作處于事務(wù)控制下,有需要的朋友可以借鑒參考下,希望能夠有所幫助2022-03-03
基于多網(wǎng)卡環(huán)境下Eureka服務(wù)注冊IP的選擇問題
這篇文章主要介紹了基于多網(wǎng)卡環(huán)境下Eureka服務(wù)注冊IP的選擇問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03
Spring Framework遠(yuǎn)程代碼執(zhí)行漏洞分析(最新漏洞)
Spring Framework 是一個開源應(yīng)用框架,旨在降低應(yīng)用程序開發(fā)的復(fù)雜度,它具有分層體系結(jié)構(gòu),允許用戶選擇組件,同時還為 J2EE 應(yīng)用程序開發(fā)提供了一個有凝聚力的框架,對Spring遠(yuǎn)程代碼執(zhí)行漏洞相關(guān)知識感興趣的朋友一起看看吧2022-04-04
Java中如何將list轉(zhuǎn)為樹形結(jié)構(gòu)
這篇文章主要介紹了Java中如何將list轉(zhuǎn)為樹形結(jié)構(gòu),本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-09-09
SpringBoot?+DynamicDataSource切換多數(shù)據(jù)源的全過程
這篇文章主要介紹了SpringBoot?+DynamicDataSource切換多數(shù)據(jù)源的全過程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-01-01
SpringAop @Aspect織入不生效,不執(zhí)行前置增強(qiáng)織入@Before方式
這篇文章主要介紹了SpringAop @Aspect織入不生效,不執(zhí)行前置增強(qiáng)織入@Before方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-12-12
Spring Boot報錯:No session repository could be auto-configured
這篇文章主要給大家介紹了關(guān)于Spring Boot報錯:No session repository could be auto-configured, check your configuration的解決方法,文中給出了詳細(xì)的解決方法,對遇到這個問題的朋友們具有一定參考價值,需要的朋友下面來一起看看吧。2017-07-07

