java Swing組件setBounds()簡(jiǎn)單用法實(shí)例分析
本文實(shí)例講述了java Swing組件setBounds()簡(jiǎn)單用法。分享給大家供大家參考,具體如下:
先看API:
public void setBounds(Rectangle r)
移動(dòng)組件并調(diào)整其大小,使其符合新的有界矩形 r。由 r.x 和 r.y 指定組件的新位置,由 r.width 和 r.height 指定組件的新大小
參數(shù): r - 此組件的新的有界矩形
從API來(lái)看,該方法的作用相當(dāng)于setLocation()與 setSize()的總和。在實(shí)際使用時(shí),需將容器的layout設(shè)置為null,因?yàn)槭褂貌季止芾砥鲿r(shí),控件的位置與尺寸是由布局管理器來(lái)分配的。需要注意的是,這時(shí)必須手動(dòng)指定容器的尺寸,因?yàn)榭盏牟季止芾砥鲿?huì)將容器自身的PreferredSize清零,導(dǎo)致容器無(wú)法在GUI上顯示。因此,如果容器在上級(jí)容器中使用布局管理器排列,那么需使用setPreferredSize(),如果容器在上級(jí)容器中仍然手動(dòng)排列,那么對(duì)容器使用setBounds()即可。
下面是測(cè)試demo:
package awtDemo;
import java.awt.Dimension;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class setBoundsDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
//設(shè)置panel的layout以及sieze
JPanel jpanel = new JPanel();
System.out.println("default PreferredSize is " + jpanel.getPreferredSize());
System.out.println("default Size is " + jpanel.getSize());
jpanel.setLayout(null);
System.out.println("In null layout, the PreferredSize is " + jpanel.getPreferredSize());
System.out.println("In null layout, the Size is " + jpanel.getSize());
jpanel.setPreferredSize(new Dimension(400, 400));
//添加按鈕
JButton button11 = new JButton("setBounds");
JButton button12 = new JButton("setLocationAndSetSize");
button11.setBounds(20, 20, 100, 100);
button12.setLocation(250, 250);
button12.setSize(100, 100);
jpanel.add(button11);
jpanel.add(button12);
// 設(shè)置窗體屬性
JFrame frame = new JFrame("setBoundsDemo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(jpanel);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
}
運(yùn)行效果如下:

程序輸出如下:
default PreferredSize is java.awt.Dimension[width=10,height=10] default Size is java.awt.Dimension[width=0,height=0] In null layout, the PreferredSize is java.awt.Dimension[width=0,height=0] In null layout, the Size is java.awt.Dimension[width=0,height=0]
更多關(guān)于java相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java字符與字符串操作技巧總結(jié)》、《Java操作DOM節(jié)點(diǎn)技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》
希望本文所述對(duì)大家java程序設(shè)計(jì)有所幫助。
相關(guān)文章
Spring?Boot?集成Redisson實(shí)現(xiàn)分布式鎖詳細(xì)案例
這篇文章主要介紹了Spring?Boot?集成Redisson實(shí)現(xiàn)分布式鎖詳細(xì)案例,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下2022-08-08
SpringBoot之如何搭建SpringBoot+Maven項(xiàng)目
這篇文章主要介紹了SpringBoot之如何搭建SpringBoot+Maven項(xiàng)目問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07
導(dǎo)入renren-fast出現(xiàn)問(wèn)題以及解決方案
文章介紹了在導(dǎo)入renren-fast項(xiàng)目時(shí)遇到的maven繼承parent問(wèn)題,并提供了解決方案,即在pom文件中添加``標(biāo)簽,此外,還詳細(xì)解釋了Maven的``標(biāo)簽的作用以及MAVEN構(gòu)建jar包時(shí)的查找順序2024-11-11
運(yùn)行jar程序時(shí)添加vm參數(shù)的方法
下面小編就為大家?guī)?lái)一篇運(yùn)行jar程序時(shí)添加vm參數(shù)的方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-02-02
淺談Java中浮點(diǎn)型數(shù)據(jù)保留兩位小數(shù)的四種方法
今天在進(jìn)行開(kāi)發(fā)的過(guò)程中遇到了一個(gè)小問(wèn)題,是關(guān)于如何將double類(lèi)型的數(shù)據(jù)保留兩位小數(shù)。具有一定的參考價(jià)值,本文就詳細(xì)的介紹一下2021-09-09
SpringCloud GateWay動(dòng)態(tài)路由用法
網(wǎng)關(guān)作為所有項(xiàng)目的入口,不希望重啟,因此動(dòng)態(tài)路由是必須的,動(dòng)態(tài)路由主要通過(guò)RouteDefinitionRepository接口實(shí)現(xiàn),其默認(rèn)的實(shí)現(xiàn)是InMemoryRouteDefinitionRepository,即在內(nèi)存中存儲(chǔ)路由配置,可基于這個(gè)map對(duì)象操作,動(dòng)態(tài)路由的實(shí)現(xiàn)方案有兩種2024-10-10

