




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、2.3 運(yùn)用規(guī)劃管理器主講教師:董婷一、知識(shí)才干目的1. 了解容器的概念及層次;2. 掌握常用規(guī)劃管理器的運(yùn)用;3. 運(yùn)用規(guī)劃管理器設(shè)計(jì)規(guī)劃美觀的GUI程序 二、工程14 電子日歷 顯示2019年的電子日歷 1.程序代碼import java.util.Calendar;import java.util.*;import java.awt.*;import java.awt.event.*;import java.applet.*;public class CalendarMainClass public static void main(String args) CalendarFrame
2、frame=new CalendarFrame(); frame.setBounds(100,100,360,300); /設(shè)置窗體位置大小 frame.setVisible(true); /設(shè)置窗體可見(jiàn) frame.validate(); frame.addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); ); class CalendarBean/創(chuàng)建用于判別年月日之間關(guān)系的類CalendarBean String day; int year=2019,mo
3、nth=0; public void setYear(int year) /設(shè)置年份的方法 this.year=year; public int getYear() /獲得年份的方法 return year; public void setMonth(int month) /設(shè)置月份的方法 this.month=month; public int getMonth() /獲得月份的方法 return month; public String getCalendar() String a=new String42; Calendar 日歷=Calendar.getInstance(); 日歷.s
4、et(year,month-1,1); int 星期幾=日歷.get(Calendar.DAY_OF_WEEK)-1; int day=0; if(month=1|month=3|month=5|month=7|month=8|month=10|month=12) day=31; if(month=4|month=6|month=9|month=11) day=30; if(month=2) /判別月份能否為2月 if(year%4=0)&(year%100!=0)|(year%400=0)/判別能否為閏年 day=29; else day=28; for(int i=星期幾,n=1;i星期幾
5、+day;i+) ai=String.valueOf(n); n+; return a; class CalendarFrame extends Frame implements ActionListener/創(chuàng)建日歷界面類CalendarFrame Label labelDay=new Label42; Button titleName=new Button7; String name=日,一,二,三,四,五,六; Button nextMonth,previousMonth; int year=2019,month=2; CalendarBean calendar; Label showM
6、essage=new Label(,Label.CENTER); public CalendarFrame() Panel pCenter=new Panel(); /創(chuàng)建pCenter面板 pCenter.setLayout(new GridLayout(7,7); /將pCenter的規(guī)劃設(shè)置為7行7列的GridLayout規(guī)劃 for(int i=0;i7;i+) titleNamei=new Button(namei); pCenter.add(titleNamei); for(int i=0;i42;i+) labelDayi=new Label(,Label.CENTER); pC
7、enter.add(labelDayi); calendar=new CalendarBean(); calendar.setYear(year); calendar.setMonth(month); String day=calendar.getCalendar(); for(int i=0;i12) month=1; calendar.setMonth(month); String day=calendar.getCalendar(); for(int i=0;i42;i+) labelDayi.setText(dayi); else if(e.getSource()=previousMo
8、nth) /單擊上月按鈕時(shí)刷新日期 month=month-1; if(month1) month=12; calendar.setMonth(month); String day=calendar.getCalendar(); for(int i=0;i42;i+) labelDayi.setText(dayi); showMessage.setText(當(dāng)前是:+calendar.getYear()+年+calendar.getMonth()+月); 2.相關(guān)知識(shí) 流規(guī)劃FlowLayout 呈程度放置,直到同一條線上再也沒(méi)有適宜的控件 對(duì)齊方式由 align 屬性確定。能夠的值為: LE
9、FT RIGHT CENTER LEADING TRAILING 方法方法主要功能主要功能FowLayout()生成一個(gè)默認(rèn)的流式布局FlowLayout(int alignment)可以設(shè)定每一行組件的對(duì)齊方式FlowLayout(int alignment,int horz,int vert)可以設(shè)定對(duì)齊方式以及通過(guò)參數(shù)horz和vert分別設(shè)定組件的水平和垂直間距void addLayoutComponent(Stringname, Componentcomp)將指定的組件添加到布局中void setAlignment(intalign)設(shè)置此布局的對(duì)齊方式void setHgap(in
10、thgap)設(shè)置組件之間以及組件與Container 的邊之間的水平間隙void setVgap(intvgap)設(shè)置組件之間以及組件與Container 的邊之間的垂直間隙int getAlignment()獲取此布局的對(duì)齊方式int getHgap()獲取組件之間以及組件與Container 的邊之間的水平間隙int getVgap()獲取組件之間以及組件與Container 的邊之間的垂直間隙 邊境規(guī)劃BorderLayout 對(duì)容器組件進(jìn)展安排,并調(diào)整其大小,使其符合以下五個(gè)區(qū)域:南、北、東、西和中間區(qū)域方法方法主要功能主要功能BorderLayout( )構(gòu)造一個(gè)組件之間沒(méi)有間距的新
11、邊框布局BorderLayout (inthgap, intvgap)構(gòu)造一個(gè)具有指定組件間距的邊框布局void addLayoutComponent(Componentcomp, Objectconstraints)使用指定的約束對(duì)象將指定組件添加到布局中void setHgap(inthgap)設(shè)置組件之間的水平間隙void setVgap(intvgap)設(shè)置組件之間的垂直間隙int getHgap()獲取組件之間的水平間隙int getVgap()獲取組件之間的垂直間隙 網(wǎng)格規(guī)劃GridLayout以矩形網(wǎng)格方式對(duì)容器的組件進(jìn)展布置 容器被分成大小相等的矩形,一個(gè)矩形中放置一個(gè)組件 方
12、法方法主要功能主要功能GridLayout ( )生成一個(gè)單列的網(wǎng)格布局。默認(rèn)無(wú)間隙。GridLayout(int row,int col)生成一個(gè)設(shè)定行數(shù)和列數(shù)的網(wǎng)格布局GridLayout(int row,int col,int horz,int vert)可以設(shè)置組件之間的水平和垂直間隔void addLayoutComponent(Stringname, Componentcomp)將具有指定名稱的指定組件添加到布局void setColumns(intcols)將此布局中的列數(shù)設(shè)置為指定值void setRows(introws)將此布局中的行數(shù)設(shè)置為指定值int getColumn
13、s()獲取此布局中的列數(shù)int getRows()獲取此布局中的行數(shù) 卡片規(guī)劃CardLayout將容器中的每個(gè)組件看作一張卡片方法方法主要功能主要功能CardLayout()創(chuàng)建一個(gè)間距大小為 0 的新卡片布局CardLayout(inthgap, intvgap)創(chuàng)建一個(gè)具有指定水平間距和垂直間距的新卡片布局void addLayoutComponent(Componentcomp, Objectconstraints)將指定的組件添加到此卡片布局的內(nèi)部名稱表void next(Container parent)翻轉(zhuǎn)到指定容器的下一張卡片void previous(Container pa
14、rent)翻轉(zhuǎn)到指定容器的前一張卡片void first(Container parent)翻轉(zhuǎn)到容器的第一張卡片void last(Container parent)翻轉(zhuǎn)到容器的最后一張卡片void show(Container parent,String name)翻轉(zhuǎn)到使用addLayoutComponent添加到此布局的具有指定name的組件三、工程15 運(yùn)用網(wǎng)格袋規(guī)劃 運(yùn)用網(wǎng)格袋規(guī)劃管理器,將窗體中的控件進(jìn)展如圖規(guī)劃設(shè)計(jì) 1.程序代碼import java.awt.*;import java.awt.event.*;import javax.swing.*;class GBC ext
15、ends GridBagConstraints private static final long serialVersionUID = 6657272964185905015L;/設(shè)置網(wǎng)格座標(biāo)參數(shù)public GBC(int x, int y) this.gridx = x;this.gridy = y;/設(shè)置網(wǎng)格座標(biāo)和占的網(wǎng)格數(shù)public GBC(int gridx, int gridy, int gridwidth, int gridheight) this.gridx = gridx;this.gridy = gridy;this.gridwidth = gridwidth;this
16、.gridheight = gridheight; public GBC setAnchor(int anchor) this.anchor = anchor;return this;public GBC setFill(int fill) this.fill = fill;return this; /設(shè)置單元網(wǎng)格大小public GBC setWeight(double weightx, double weighty) this.weightx = weightx;this.weighty = weighty;return this; /設(shè)置網(wǎng)格之間的相互間隔public GBC setIn
17、set(int distance) this.insets = new Insets(distance, distance, distance, distance);return this; /設(shè)置網(wǎng)格之間的相互間隔public GBC setInset(int top, int left, int bottom, int right) this.insets = new Insets(top, left, bottom, right);return this; /設(shè)置網(wǎng)格的初始位置public GBC setIpad(int ipadx, int ipady) this.ipadx = ip
18、adx;this.ipady = ipady;return this;public class GridBagLayoutTest extends JFrame /* 序列化序號(hào)private static final long serialVersionUID = 6763277356654198370L; public GridBagLayoutTest() this.setTitle(“GridBagLayoutTest); / 窗體標(biāo)題 this.setSize(400, 150); / 窗體大小 / 設(shè)置窗體居中顯示在屏幕上Dimension size = Toolkit.getDe
19、faultToolkit().getScreenSize();this.setLocation(int) (size.getWidth() - this.getWidth() / 2,(int) (size.getHeight() - this.getHeight() / 2);/ 初始化窗口面板this.initial();/ 設(shè)置窗體為不可改動(dòng)大小this.setResizable(false);/ 設(shè)置窗體為顯示this.setVisible(true); /初始化窗體上的面板public void initial() JPanel panel = new JPanel();panel.
20、setLayout(new GridBagLayout(); / 設(shè)置一切控件所占網(wǎng)格的大小,位置,座標(biāo),對(duì)齊方式 panel.add(new JScrollPane(new JTextArea(), new GBC(0, 0, 2, 3).setWeight(10, 0).setFill(GBC.BOTH);panel.add(new JButton(按鈕一), new GBC(2, 0, 2, 1).setWeight(5, 0).setFill(GBC.BOTH);panel.add(new JButton(按鈕二), new GBC(2, 1).setWeight(5, 0).setF
21、ill(GBC.BOTH);panel.add(new JButton(按鈕三), new GBC(3, 1).setWeight(5, 0).setFill(GBC.BOTH);panel.add(new JComboBox(new String 組合框 ), new GBC(2, 2, 2, 1).setWeight(5, 0).setFill(GBC.BOTH);panel.add(new JTextField(單行文本框), new GBC(0, 3, 4, 1).setWeight(5, 0).setFill(GBC.BOTH);this.setLayout(new BorderLa
22、yout();this.getContentPane().add(panel, BorderLayout.CENTER); public static void main(String args) / 匿名內(nèi)部類,為窗口注冊(cè)事件new GridBagLayoutTest().addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0);); 2.相關(guān)知識(shí)GridBagLayout類 方法方法GridBagLayout()void setConstraints(Compo
23、nentcomp, GridBagConstraintsconstraints)主要功能主要功能創(chuàng)建網(wǎng)格袋規(guī)劃管理器設(shè)置此規(guī)劃中指定組件的約束條件GridBagConstraints類 方法方法主要功能主要功能GridBagConstraints() 創(chuàng)建一個(gè) GridBagConstraint 對(duì)象,將其一切字段都設(shè)置為默許值GridBagConstraints(intgridx, intgridy, intgridwidth, intgridheight, doubleweightx, doubleweighty, intanchor, intfill, Insetsinsets, int
24、ipadx, intipady)創(chuàng)建一個(gè) GridBagConstraints 對(duì)象,將其一切字段都設(shè)置為傳入?yún)?shù)成員變量成員變量含義含義static int RELATIVE指定此組件為其行或列中的倒數(shù)第二個(gè)組件,或者讓此組件緊跟在以前添加的組件之后s t a t i c i n t REMAINDER指定此組件是其行或列中的最后一個(gè)組件int fill當(dāng)組件的顯示區(qū)域大于它所懇求的顯示區(qū)域的大小時(shí)運(yùn)用此字段int gridheight指定在組件顯示區(qū)域的一列中的單元格數(shù)int gridwidth指定組件顯示區(qū)域的某一行中的單元格數(shù)int gridx指定包含組件的顯示區(qū)域開(kāi)場(chǎng)邊的單元格,其中
25、行的第一個(gè)單元格為 gridx=0int gridy指定位于組件顯示區(qū)域的頂部的單元格,其中最上邊的單元格為 gridy=0成員變量成員變量含義含義int anchor當(dāng)組件小于其顯示區(qū)域時(shí)運(yùn)用此字段。它可以確定在顯示區(qū)域中放置組件的位置 double weightx指定如何分布額外的程度空間 double weighty指定如何分布額外的垂直空間。 Insets insets指定組件的外部填充,即組件與其顯示區(qū)域邊緣之間間距的最小量。 int ipadx指定組件的內(nèi)部填充,即給組件的最小寬度添加多大的空間。 int ipady指定組件的內(nèi)部填充,即給組件的最小高度添加多大的空間。 fill NONE:不調(diào)整組件大小。 HORIZONTAL:加寬組件,使它在程度方向上得以填滿其顯示區(qū)域,但是不改動(dòng)高度。 VERTICAL:加高組件,使它在垂直方向上得以填滿其顯示區(qū)域,但是不改動(dòng)寬度。 BOTH:使組件完全填滿其顯示區(qū)域 anchor 能夠的值有兩種:相對(duì)和絕對(duì) 相對(duì)值的解釋是相對(duì)于容器的組件方向?qū)傩?PAGE_START、PAGE_END、LINE_START、LINE_END、FIRST_LINE_START、F
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 教育行業(yè)勞動(dòng)合同范文
- 合作發(fā)展合同-股本借款標(biāo)準(zhǔn)范本
- 租賃合同糾紛調(diào)解協(xié)議書范本
- 10-1《蘭亭集序》教學(xué)設(shè)計(jì) 2023-2024學(xué)年統(tǒng)編版高中語(yǔ)文選擇性必修下冊(cè)
- 10 吃飯有講究 教學(xué)設(shè)計(jì)-2024-2025學(xué)年道德與法治一年級(jí)上冊(cè)統(tǒng)編版
- 長(zhǎng)期借款合同參考模板
- 貸款合同范本:全新標(biāo)準(zhǔn)版
- 環(huán)保治理工程承包合同范文
- 生產(chǎn)訂購(gòu)合同范本
- 餐飲直營(yíng)協(xié)議合同范本
- 轉(zhuǎn)基因調(diào)查分析報(bào)告
- 英語(yǔ)-時(shí)文閱讀-7年級(jí)(8篇)
- 數(shù)據(jù)挖掘(第2版)全套教學(xué)課件
- 產(chǎn)學(xué)研融合創(chuàng)新合作機(jī)制
- 胃早癌-經(jīng)典課件
- 幕墻工安全技術(shù)交底
- 集裝箱七點(diǎn)檢查表
- 7S管理標(biāo)準(zhǔn)目視化管理標(biāo)準(zhǔn)
- 籃球場(chǎng)改造工程投標(biāo)方案(技術(shù)方案)
- 茉莉花的生長(zhǎng)習(xí)性及栽培管理辦法
- 蛤蟆先生去看心理醫(yī)生
評(píng)論
0/150
提交評(píng)論