資源描述:
《用戶界面組件》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、239第9章用戶界面組件在Java圖形界面設(shè)計(jì)時(shí),界面上的元素都是組件。常用的輕型組件有JButton、JLabel、JTextField、JTextArea、JComboBox、JList、JCheckBox、JRadioButton、JMenuBar、JMenu、JMenuItem、JScrollBar、JScrollPane等。9.1組件(component)Component類是所有組件(UI組件和容器)的父類,因此Component類的特征被其所有子類繼承。所有組件外形都是矩形框。屏幕有個(gè)坐標(biāo)系,組件以屏幕坐標(biāo)來(lái)確定組件在屏幕上顯示的位置。在默認(rèn)情況下,組件在屏幕
2、上顯示時(shí),組件的左上角的坐標(biāo)值是(0,0)。當(dāng)組件是容器時(shí),容器也有自已的坐標(biāo)系。當(dāng)把組件加入容器時(shí),被加入容器的組件在容器中的位置由組件的左上角坐標(biāo)(x,y)確定。這里的(x,y)是組件的左上角在容器坐標(biāo)系中的值。下面介紹Component類的常用屬性和方法。9.1.1組件的屬性組件的重要屬性如下:lfont:組件中顯示文字所用的字體。lbackground:組件的背景色。lforeground:組件的前景色。lheight:組件的當(dāng)前高度。lwidth:組件的當(dāng)前寬度。llocale:組件的地區(qū)特性.lpreferredSize:組件在視覺(jué)上的理想尺寸.lminimum
3、Size:指定組件可用的最小尺度。對(duì)大部分Swing組件而言,minimumSize與preferredSize是相同的.一般地,與preferredSize相比,布局管理器更優(yōu)先考慮minimumSize.lmaximumSize:指定組件需要的最大尺度,這樣布局管理器可以避免由于分配給某一組件過(guò)多的空間而造成浪費(fèi)。lToolTipText:鼠標(biāo)指向組件所顯示的文字.239239lDoubleBuffered:指定繪制組件時(shí)是否采用雙緩沖技術(shù).lBorder:指定組件的邊框9.1.2組件的常用方法1.顏色的設(shè)置和獲取lpublicvoidsetBackground(Col
4、orcolor):設(shè)置組件的背景色。lpublicColorgetBackground(Colorcolor):獲取組件的背景色。lpublicvoidsetForeground(Colorcolor):設(shè)置組件的前景色。lpublicColorgetForeground(Colorcolor):獲取組件的前景色。2.字體的設(shè)置和獲取lpublicvoidsetFont(Fontfont):組件調(diào)用該方法設(shè)置組件上的字體。例如,文本框調(diào)用該方法,可以設(shè)置文本框中的字體。lpublicFontgetFont(Fontfont):組件調(diào)用該方法獲取組件上的字體。在創(chuàng)建字體對(duì)象時(shí)
5、,要使用參數(shù)(字體名稱),因此,執(zhí)行程序的計(jì)算機(jī)上必須有這個(gè)字體名稱。如果在創(chuàng)建字體對(duì)象時(shí),沒(méi)有給出一個(gè)合理的字體名稱,那么系統(tǒng)會(huì)自動(dòng)采用程序運(yùn)行平臺(tái)上的默認(rèn)字體名稱。如何獲取計(jì)算機(jī)上所有可用的字體名稱?分析:GraphicsEnvironment類是java.awt包中的抽象類,不能用該類的構(gòu)造方法創(chuàng)建對(duì)象。我們用GraphicsEnvironment類的類方法獲取圖形對(duì)象(GraphicsEnvironment對(duì)象)。然后通過(guò)GraphicsEnvironment對(duì)象中的String[]getAvailableFontFamilyNames()方法獲取計(jì)算機(jī)上所有可用的
6、字體名稱,并存放到字符串?dāng)?shù)組中。獲取計(jì)算機(jī)上所有字體名稱的代碼如下:GraphicsEnvironmentge=GraphicsEnvironment.getLocalGraphicsEnvironment();//獲取計(jì)算機(jī)的圖象對(duì)象StringfontName[]=ge.getAvailableFontFamilyNames();//把一系列字體名稱保存到數(shù)組中【例9.1】窗體里添加兩個(gè)按鈕和一個(gè)標(biāo)簽。通過(guò)點(diǎn)擊按鈕1和按鈕2設(shè)置標(biāo)簽顏色和字體。解題思路:1、對(duì)題目進(jìn)行分析設(shè)計(jì),分析這個(gè)程序需要多少個(gè)類完成;2、創(chuàng)建窗體,然后創(chuàng)建兩個(gè)面板,用于往窗體里添加兩個(gè)按鈕和添加一
7、個(gè)標(biāo)簽;3、然后對(duì)這些組件進(jìn)行監(jiān)聽(tīng),當(dāng)事件源是按鈕1和按鈕2被按下的時(shí)候觸發(fā)事件,設(shè)置標(biāo)簽顏色和字體;程序名:ChangeFontextends.java【程序源代碼】239239importjava.awt.*;importjavax.swing.*;importjava.awt.event.*;//下面是定義一個(gè)ChangeFont框架類publicclassChangeFontextendsJFrame{//實(shí)例化兩個(gè)按鈕privateJButtonbut1=newJButton("button1");pri