《Java語言編程基礎(chǔ)立體化實(shí)用教程》教案-2.3 登錄窗體的實(shí)現(xiàn)_第1頁
《Java語言編程基礎(chǔ)立體化實(shí)用教程》教案-2.3 登錄窗體的實(shí)現(xiàn)_第2頁
《Java語言編程基礎(chǔ)立體化實(shí)用教程》教案-2.3 登錄窗體的實(shí)現(xiàn)_第3頁
《Java語言編程基礎(chǔ)立體化實(shí)用教程》教案-2.3 登錄窗體的實(shí)現(xiàn)_第4頁
《Java語言編程基礎(chǔ)立體化實(shí)用教程》教案-2.3 登錄窗體的實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

山東理工職業(yè)學(xué)院單元教學(xué)過程設(shè)計(jì)首頁課程所屬院(部):軟件工程學(xué)院2019--2020學(xué)年第一學(xué)期課程名稱Java語言編程基礎(chǔ)任課教師單元標(biāo)題項(xiàng)目二任務(wù)3登錄窗體的實(shí)現(xiàn)上課地點(diǎn)學(xué)時(shí)4授課班級授課時(shí)間第周第周第周第周第周第周星期星期星期星期星期星期第節(jié)第節(jié)第節(jié)第節(jié)第節(jié)第節(jié)月日月日月日月日月日月日教學(xué)目標(biāo)能力目標(biāo)知識目標(biāo)1.利用各種組件、布局模式進(jìn)行登錄窗體設(shè)計(jì)與實(shí)現(xiàn)1.了解窗體絕對布局的方法;2.掌握J(rèn)TextField、JPasswordField、JButton、JLabel等控件的使用;3.掌握J(rèn)Frame窗體的構(gòu)造方法及屬性設(shè)置。教學(xué)任務(wù)登錄窗體設(shè)計(jì)與實(shí)現(xiàn)教學(xué)重、難點(diǎn)重點(diǎn):掌握各種組件、布局模式難點(diǎn):窗體的設(shè)計(jì)與實(shí)現(xiàn)教學(xué)材料或用具教材、教案、課件、課程標(biāo)準(zhǔn)、案例素材及Eclipse開發(fā)軟件課后任務(wù)1.請利用WindowBuilder,通過控件拖放完成本任務(wù)中的登錄窗體。2.請利用JTextField、JPasswordField、JButton、JLabel等控件制作注冊頁面。山東理工職業(yè)學(xué)院單元教學(xué)過程設(shè)計(jì)步驟及時(shí)間教學(xué)內(nèi)容教師活動(dòng)學(xué)生活動(dòng)5分鐘5分鐘20分鐘、20分鐘20分鐘20分鐘20分鐘90分鐘90分鐘10分鐘【組織教學(xué)】1、檢查學(xué)生出勤,作好學(xué)生考勤記錄。2、課堂提問,了解學(xué)生掌握所學(xué)知識情況。3、強(qiáng)調(diào)課堂紀(jì)律,加強(qiáng)互動(dòng),活躍課堂氣氛?!菊n題導(dǎo)入】通常一個(gè)系統(tǒng)的登錄需要輸入用戶名和密碼才能實(shí)現(xiàn)登錄。這里用戶名和密碼的匹配需要連接數(shù)據(jù)庫比對后,根據(jù)匹配結(jié)果顯示應(yīng)用程序窗體,或提示用戶名密碼錯(cuò)誤等信息。在本任務(wù)中,我們做出簡化,設(shè)定用戶名為“anne”,密碼為“123456”時(shí)才能登錄系統(tǒng),否則提示錯(cuò)誤信息。【講授新課】9.4.1AWT和SwingJava提供的兩個(gè)處理圖形用戶界面的類庫:java.awt包和javax.swing包,GUI的類庫可分為:容器類、布局管理器類和組件類。1.AWT簡介AWT(AbstractWindowsToolkit):抽象窗口工具包。在java.awt包中提供了大量地進(jìn)行GUI設(shè)計(jì)所使用的類和接口:繪制圖形、設(shè)置字體和顏色、控制組件、處理事件等,AWT是Java語言進(jìn)行GUI程序設(shè)計(jì)的基礎(chǔ)。缺點(diǎn):組件的創(chuàng)建和行為是由程序所在平臺的本地GUI工具處理,限制了不同平臺行為效果的一致性,所以被稱為抽象的工具集。2.Swing簡介javax.swing包是java.awt包的擴(kuò)展包:(1)Swing包是Java基礎(chǔ)類庫的一部分,它提供了從按鈕到可分拆面板和表格的所有組件;(2)Swing組件是Java提供的第二代GUI設(shè)計(jì)工具包,它以AWT為基礎(chǔ),并在此基礎(chǔ)上新增或改進(jìn)了一些GUI組件,使得GUI程序功能更強(qiáng)大,設(shè)計(jì)更容易、更方便;(3)Swing的組件是“輕量級”(lightweight)組件,任一Swing組件要顯示在屏幕上,都要由一個(gè)頂層容器容納;(4)Swing中組件的類名常以“J”開頭,以與AWT相應(yīng)組件區(qū)別。Swing位于javax.swing包中,javax是java的一個(gè)擴(kuò)展包。3.AWT和swing的不同(1)AWT是Swing的基礎(chǔ),Swing產(chǎn)生主要原因是AWT不能滿足圖形用戶界面發(fā)展的需要;(2)Swing組件沒有本地代碼,不依賴于操作系統(tǒng)平臺的支持,這是它與AWT組件的最大區(qū)別;(3)Swing由百分百純Java實(shí)現(xiàn),不依賴操作系統(tǒng)的支持,在不同的平臺上的表現(xiàn)都是一致的,比AWT組件具有更強(qiáng)的可移植性和靈活性?!纠?.1】利用AWT包中的Frame類創(chuàng)建窗體importjava.awt.*;publicclassExp91{ publicstaticvoidmain(String[]args){ Framef=newFrame("AWT"); f.add(newButton("AWT窗體!")); f.setSize(400,400); f.setVisible(true); }}【注意】這里單擊窗體按鈕無法關(guān)閉窗體,需要添加窗體事件才能實(shí)現(xiàn)關(guān)閉窗體功能。運(yùn)行結(jié)果:圖9-13AWT窗體顯示【例9.2】利用Swing包中的JFrame類創(chuàng)建窗體importjavax.swing.*;publicclassExp92{ publicstaticvoidmain(String[]args){ JFramef=newJFrame("Swing"); f.add(newJButton("Swing窗體!"));//將按鈕添加到窗體上 f.setSize(400,400); f.setVisible(true); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); }}【注意】這里只有設(shè)置了大小和可見性之后窗體才能正常顯示出來。運(yùn)行結(jié)果:圖9-14Swing窗體顯示9.4.2JFrame1.JFrame的常用構(gòu)造方法和常用方法如下表所示:表9-1JFrame部分構(gòu)造方法構(gòu)造方法方法含義publicJFrame()構(gòu)造一個(gè)無參數(shù)的窗體publicJFrame(Stringtitle)構(gòu)造一個(gè)具有指定標(biāo)題的窗體JFrame的常用方法如下表所示:表9-2JFrame常用方法常用方法方法含義setVisible(booleanv)設(shè)置窗體是否可見setDefaultCloseOperation(intoperation);通過按鈕關(guān)閉窗口并結(jié)束程序。Operation取值常為JFrame.EXIT_ON_CLOSEsetSize(intwidth,intheight)設(shè)置窗體的寬度和高度setLocaiton(intx,inty)設(shè)置窗體的位置,x、y代表左上角頂點(diǎn)坐標(biāo)。setBounds(intx,inty,intwidth,intheight)設(shè)置窗體的大小和位置。setTitle(Stringtitle)設(shè)置窗體標(biāo)題setResizable(booleanb)設(shè)置窗體是否可變大小pack()調(diào)整此窗口的大小,以適合其子組件的首選大小和布局。remove(Component

comp)從容器中移除指定組件。2.創(chuàng)建一個(gè)窗體的兩種方法在程序中定義一個(gè)JFrame對象,通過對象來設(shè)置相關(guān)屬性,如【例9.2】所示;自定義一個(gè)類繼承JFrame對象,在該類的構(gòu)造方法中設(shè)置窗體相關(guān)屬性,最后實(shí)例化該類,形成窗體,如下面的例子所示,它實(shí)現(xiàn)了和【例9.2】同樣的功能?!纠?.3】第二種創(chuàng)建窗體的方式importjava.awt.Dimension;importjavax.swing.JButton;importjavax.swing.JFrame;publicclassExp93extendsJFrame{ publicExp93(){ this.setTitle("Swing"); this.setSize(newDimension(400,400));//setSize的第二種使用方法 this.add(newJButton("Swing窗體!")); this.setVisible(true);//EXIT_ON_CLOSE使用System.exit方法退出應(yīng)用程序,僅在應(yīng)用程序中使用 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } publicstaticvoidmain(String[]args){ newExp93(); }}9.4.3JTextFieldJTextField即文本框控件,用來接收用戶輸入的單行數(shù)據(jù)。JTextFiled的常用構(gòu)造方法如下表所示:表9-3JTextFiled構(gòu)造方法構(gòu)造方法方法含義publicJTextFiled()構(gòu)造一個(gè)無參數(shù)的文本框控件publicJTextFiled(intcolumns)構(gòu)造一個(gè)具有指定列數(shù)的文本框控件publicJTextFiled(Stringtext)構(gòu)造一個(gè)具有初始化文本的文本框控件publicJTextFiled(Stringtext,intcolumns)構(gòu)造一個(gè)具有指定初始化文本和列數(shù)的文本框控件JTextFiled的常用方法如下表所示:表9-4JTextFiled常用方法常用方法方法含義publicvoidsetText(Stringtext)設(shè)置文本框中的內(nèi)容publicStringgetText()返回文本框中的內(nèi)容publicvoidsetEditable(booleaneditable)設(shè)置文本框是否可編輯publicvoidsetEnable(booleanenable)設(shè)置文本框是夠可用PublicvoidsetColumns(intcolumn)設(shè)置文本框列數(shù)9.4.4JPasswordFieldJPasswordField為密碼框,它擴(kuò)展了JTextFiled的功能,特點(diǎn)是當(dāng)用戶輸入數(shù)據(jù)后,數(shù)據(jù)不顯示為正常字符,將會(huì)被特定字符(默認(rèn)為“*”)隱藏。JPasswordFieldjp=newJPasswordField();//echochar設(shè)置為a,這樣該密碼框輸入的信息將會(huì)被a隱藏jp.setEchoChar(‘a(chǎn)’);【例9.4】文本框和密碼框示例importjava.awt.Dimension;importjava.awt.FlowLayout;importjavax.swing.JFrame;importjavax.swing.JPasswordField;importjavax.swing.JTextField;publicclassExp94extendsJFrame{publicExp94(){ this.setTitle("文本框測試"); this.setSize(newDimension(400,500)); this.setLayout(newFlowLayout());//設(shè)置窗體為流式布局 JTextFieldtxt1=newJTextField();//創(chuàng)建文本框?qū)ο髏xt1 JTextFieldtxt2=newJTextField();//創(chuàng)建文本框?qū)ο髏xt2 JTextFieldtxt3=newJTextField();//創(chuàng)建文本框?qū)ο髏xt3 JPasswordFieldtxt4=newJPasswordField();//創(chuàng)建密碼框?qū)ο髏xt4 txt1.setColumns(20);//設(shè)置文本框列數(shù) txt2.setColumns(20);//設(shè)置文本框列數(shù) txt3.setColumns(20);//設(shè)置文本框列數(shù) txt4.setColumns(20);//設(shè)置密碼框列數(shù) txt2.setText("ok");//設(shè)置文本框txt2的顯示文本 txt2.setEditable(false);//文本框txt2設(shè)置為非可編輯的 txt3.setEnabled(false);//設(shè)置txt3文本框?yàn)椴豢捎?this.add(txt1);//將文本框txt1添加到窗體上 this.add(txt2);//將密碼框txt2添加到窗體上 this.add(txt3);//將密碼框txt3添加到窗體上 this.add(txt4);//將密碼框txt4添加到窗體上 txt4.setEchoChar('$');//設(shè)置密碼框顯示字符為"$" this.setVisible(true);pack();}publicstaticvoidmain(String[]args){ newExp94();}}運(yùn)行結(jié)果:圖9-15文本框和密碼框示例運(yùn)行結(jié)果【注意】第二個(gè)文本框?yàn)椴豢删庉?,第三個(gè)文本框?yàn)椴豢捎茫藭r(shí)文本框都不能輸入信息。9.4.5JButtonJButton即按鈕控件,用來與用戶進(jìn)行交互,響應(yīng)用戶的操作。JButton的常用構(gòu)造方法如下表所示:表9-5JButton構(gòu)造方法構(gòu)造方法方法含義publicJButton()構(gòu)造一個(gè)無參數(shù)的按鈕publicJButton(Stringtext)構(gòu)造一個(gè)帶文本的按鈕publicJButton(Iconicon)構(gòu)造一個(gè)帶圖標(biāo)的按鈕publicJButton(Stringtext,Iconicon)構(gòu)造一個(gè)具有圖像和文本的按鈕JButton的常用方法如下表所示:表9-6JButton常用方法常用方法方法含義publicvoidsetText(Stringtext)設(shè)置按鈕文本publicvoidsetIcon(IcondefaultIcon)設(shè)置按鈕的默認(rèn)圖標(biāo)publicStringgetText()返回按鈕的文本publicvoidsetEnabled(booleanb)當(dāng)為false時(shí),按鈕將不能被按下,系統(tǒng)默認(rèn)為true【例9.5】按鈕示例程序importjava.awt.FlowLayout;importjavax.swing.Icon;importjavax.swing.ImageIcon;importjavax.swing.JButton;importjavax.swing.JFrame;publicclassExp95extendsJFrame{ privateFlowLayoutflowlayout1;//創(chuàng)建流式布局flowlayout1 privateJButtonbtn1;//創(chuàng)建按鈕btn1 privateJButtonbtn2;//創(chuàng)建按鈕btn2 privateJButtonbtn3;//創(chuàng)建按鈕btn3publicExp95(){ this.setTitle("按鈕示例"); flowlayout1=newFlowLayout(); this.setLayout(flowlayout1); Iconicon=newImageIcon("imag/main.jpg");//加載imag文件夾下的圖片 btn1=newJButton("文本only");//實(shí)例化btn1為只有文本的按鈕 btn2=newJButton(icon);//實(shí)例化btn2為只有圖片的按鈕 btn3=newJButton("文本和圖片",icon);//實(shí)例化btn3為含圖片文本的按鈕 this.add(btn1);//將btn1添加到窗體 this.add(btn2);//將btn2添加到窗體 this.add(btn3);//將btn3添加到窗體 this.setBounds(0,0,400,300);//設(shè)置窗體的位置和大小 pack(); this.setVisible(true);//設(shè)置窗體可見性}publicstaticvoidmain(String[]args){ newExp95();}}運(yùn)行結(jié)果:圖9-16按鈕示例運(yùn)行結(jié)果9.4.6JLabelJLabel(標(biāo)簽)對象可以顯示文本、圖像或同時(shí)顯示兩者。表9-7JLabel構(gòu)造方法構(gòu)造方法方法含義publicJLabel()創(chuàng)建空字符串的標(biāo)簽publicJLabel(Stringtext)創(chuàng)建具有文本的標(biāo)簽publicJLabel(Iconimage)創(chuàng)建具有圖像的標(biāo)簽publicJLabel(Stringtext,inthorizontalAlignment)創(chuàng)建一個(gè)具有文本、對齊方式的標(biāo)簽,默認(rèn)垂直居中publicJLabel(Stringtext,Iconicon,inthorizontalAlignment)創(chuàng)建具有文本、圖像的標(biāo)簽,默認(rèn)垂直居中JLabel的常用方法如下表所示:表9-8JLabel常用方法常用方法方法含義publicvoidsetText(Stringtext)設(shè)置JLabel顯示的文本publicStringgetText()返回JLabel顯示的文本【例9.6】標(biāo)簽示例程序importjava.awt.Color;importjava.awt.FlowLayout;importjavax.swing.BorderFactory;importjavax.swing.Icon;importjavax.swing.ImageIcon;importjavax.swing.JFrame;importjavax.swing.JLabel;publicclassExp96extendsJFrame{ privateFlowLayoutflowlayout1;//創(chuàng)建流式布局flowlayout1 privateJLabellbl1;//創(chuàng)建標(biāo)簽lbl1 privateJLabellbl2;//創(chuàng)建標(biāo)簽lbl2 privateJLabellbl3;//創(chuàng)建標(biāo)簽lbl3 privateJLabellbl4;//創(chuàng)建標(biāo)簽lbl4publicExp96(){ this.setTitle("標(biāo)簽示例"); flowlayout1=newFlowLayout(); this.setLayout(flowlayout1); Iconicon=newImageIcon("imag/main.jpg");//加載imag文件夾下的圖片 lbl1=newJLabel("文本");//實(shí)例化lbl1為只有文本的標(biāo)簽 lbl2=newJLabel(icon);//實(shí)例化lbl2為只有圖片的標(biāo)簽//實(shí)例化lbl3為含圖片、文本、對齊方式的標(biāo)簽 lbl3=newJLabel("文本、圖片和對齊方式",icon,JLabel.LEFT);//實(shí)例化lbl4具有文本和對齊方式的標(biāo)簽 lbl4=newJLabel("文本和對齊方式");//為標(biāo)簽設(shè)置邊框,顏色為紅色,寬度為3lbl1.setBorder(BorderFactory.createLineBorder(Color.red,3));lbl2.setBorder(BorderFactory.createLineBorder(Color.red,3)); lbl3.setBorder(BorderFactory.createLineBorder(Color.red,3)); lbl4.setBorder(BorderFactory.createLineBorder(Color.red,3)); this.add(lbl1);//將lbl1添加到窗體 this.add(lbl2);//將lbl2添加到窗體 this.add(lbl3);//將lbl3添加到窗體 this.add(lbl4);//將lbl4添加到窗體 this.setBounds(0,0,400,300);//設(shè)置窗體的位置和大小 pack();//設(shè)置窗體的關(guān)閉方式 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//設(shè)置窗體可見性 this.setVisible(true);}publicstaticvoidmain(String[]args){ newExp96();}}運(yùn)行結(jié)果:圖9-17標(biāo)簽示例運(yùn)行結(jié)果【知識拓展】1.WindowBuilder的安裝(1)查看Eclipse的版本選擇“help”菜單下的“AboutEclipse”菜單項(xiàng),打開“AboutEclipse”窗口,查看Eclipse的版本,如下所示:圖9-19Help菜單下的AboutEclipse菜單項(xiàng)圖9-20AboutEclipse窗口找到windowbuilder對應(yīng)的下載地址打開下面的網(wǎng)址:/windowbuilder/download.php,如下圖所示,按相應(yīng)的版本選擇“l(fā)ink”,打開網(wǎng)頁,復(fù)制得到如下地址:/windowbuilder/WB/integration/4.7/圖9-21windowbuilder下載頁面在eclipse中,單擊help菜單,選擇installnewsoftware。圖9-22InstallNewSoftware菜單項(xiàng)圖9-23彈出Install對話框在workwith文本框中復(fù)制剛才得到的鏈接,按回車鍵,單擊“next”,如下所示:圖9-24彈出Install對話框接著選擇“next”,選擇“我接受協(xié)議”,如下圖,單擊“finish”,進(jìn)入安裝。安裝完畢后重啟。圖9-25安裝協(xié)議界面2.WindowBuilder的使用WindowBuilder的安裝,可以使我們通過拖拽放置各個(gè)控件,而不用再寫繁復(fù)的代碼。使用步驟如下:利用WindowBuilder新建項(xiàng)目,從Eclipse菜單中選擇“new”,然后選擇“other”,選擇JFrame,如下圖所示:圖9-26新建—向?qū)нx擇對話框圖9-27SwingDesigner向?qū)г谙旅娴拇绑w中填入JFrame的名字,單擊“Finish”按鈕即可創(chuàng)建JFrame窗體,如下圖所示:圖9-28新建JFrame窗體在代碼窗口的底部有兩個(gè)選項(xiàng)卡Source和Design,選擇Design選項(xiàng)卡如下圖所示:圖9-29Design選項(xiàng)卡圖9-30JFrame設(shè)計(jì)界面可以通過拖放控件,更改控件相關(guān)的屬性,來構(gòu)建窗體?!炯寄苡?xùn)練】任務(wù)分析操作步驟如下:步驟一:創(chuàng)建JFrame應(yīng)用程序窗體LoginFrame;步驟二:為窗體設(shè)置合適的顏色;步驟三:為窗體設(shè)置合適的布局;步驟四:添加標(biāo)簽、文本框、按鈕等控件;步驟五:為按鈕添加響應(yīng)事件。二、任務(wù)實(shí)施任務(wù)概覽:pubicclassLoginFrame{privateJLabellblSno;privateJLabellblSname;privateJTextFieldtxtSno;privateJTextFieldtxtSname;privateJButtonbtnSubmit;privateJButtonbtnClear;LoginFrame(){};initComponents(){};}圖9-1任務(wù)執(zhí)行效果圖步驟一:創(chuàng)建JFrame應(yīng)用程序窗體LoginFrame;1.在com.sdlg.view包上右單擊,選擇“new”,選擇“class”,創(chuàng)建新的類LoginFrame。代碼如下所示:packagecom.sdlg.view;importjavax.swing.JFrame;publicclassLoginFrameextendsJFrame{publicLoginFrame(){this.setTitle("登錄");//設(shè)置窗體標(biāo)題,這里及以后的this可以省略this.setVisible(true);//設(shè)置可見性,為false時(shí),窗體不可見this.setSize(500,400);//設(shè)置窗體大小,width為500px,height為400pxthis.setLocation(0,0);//設(shè)置窗體位置,窗體左上角定點(diǎn)坐標(biāo)為(0,0)} publicstaticvoidmain(String[]args){ newLoginFrame(); }}【注意】LoginFrame需要繼承JFrame類。運(yùn)行結(jié)果:圖9-2登錄窗口顯示2.在SCMS項(xiàng)目上右單擊,選擇“new”,選擇“folder”,打開新建文件夾窗口,填入文件名“imag”(存放圖片),將“main.jpg”圖片拷貝到imag文件夾中,單擊確定,如下圖所示:圖9-3新建文件夾菜單圖9-4新建imag文件夾3.進(jìn)一步改進(jìn)代碼,使得窗口位于屏幕的中心位置,并為窗體設(shè)置背景顏色,并為窗體添加圖標(biāo),代碼如下:packagecom.sdlg.view;importjava.awt.Image;importjava.awt.Toolkit;importjavax.swing.ImageIcon;importjavax.swing.JFrame;publicclassLoginFrameextendsJFrame{publicLoginFrame(){ //獲得屏幕寬度 doublewidth=Toolkit.getDefaultToolkit().getScreenSize().getWidth(); //獲得屏幕高度 doubleheight=Toolkit.getDefaultToolkit().getScreenSize().getHeight(); this.setTitle("登錄"); //設(shè)置窗體的背景顏色 this.getContentPane().setBackground(newColor(240,255,255)); this.setSize(500,400); //設(shè)置屏幕左上角x坐標(biāo)為屏幕寬度減去窗體寬度的一半,y坐標(biāo)為屏幕高度減//去窗體高度的一半 this.setLocation((int)(width-500)/2,(int)(height-400)/2); //設(shè)置窗體布局為絕對布局 this.setLayout(null); //初始化各控件,在后面的步驟完成該方法的定義 //initComponents(); //加載窗體圖標(biāo)對象 this.setVisible(true); Imageimage=newImageIcon("./imag/main.jpg").getImage(); //設(shè)置窗體的圖標(biāo)和標(biāo)題 setIconImage(image); } publicstaticvoidmain(String[]args){ newLoginFrame(); }}運(yùn)行結(jié)果:圖9-5窗體居中顯示圖9-6登錄窗體細(xì)節(jié)圖步驟二:在LoginFrame的構(gòu)造方法中增加如下代碼和注釋,為窗體設(shè)置背景顏色。這里Color是一個(gè)類,其參數(shù)的取值范圍都為0-255,分別代表紅色、綠色、藍(lán)色,是RGB模式里的分量,其次,使用Color類時(shí),行首提示錯(cuò)誤是因?yàn)槲匆胂嚓P(guān)的包,在行首單擊叉號,彈出修正提示,單擊第一行引入java.awt.Color類可自動(dòng)引入相應(yīng)的類,完成修正代碼的工作。圖9-7設(shè)置窗體顏色代碼和注釋圖9-8引入相關(guān)的類增加代碼之后,發(fā)現(xiàn)窗體顏色發(fā)生改變。步驟三:在LoginFrame的構(gòu)造方法中增加如下代碼和注釋,為窗體設(shè)置絕對布局,該語句出現(xiàn)在setVisible(true)之間;圖9-9設(shè)置窗體為絕對布局【注意】絕對布局模式下,可通過設(shè)置控件的位置和大小來實(shí)現(xiàn)窗體布局。步驟四:為該類創(chuàng)建initComponents()方法,添加標(biāo)簽、文本框、按鈕等控件。initComponents方法初始化各控件,該方法的調(diào)用要放在setVisible(true)之前。代碼如下所示:packagecom.sdlg.view;importjava.awt.Color;importjava.awt.Font;importjava.awt.Image;importjava.awt.Toolkit;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjavax.swing.ImageIcon;importjavax.swing.JButton;importjavax.swing.JFrame;importjavax.swing.JLabel;importjavax.swing.JOptionPane;importjavax.swing.JTextField;publicclassLoginFrameextendsJFrame{ privateJLabellblSno; privateJLabellblSname; privateJTextFieldtxtSno; privateJTextFieldtxtSname; privateJButtonbtnSubmit; privateJButtonbtnClear; publicLoginFrame(){ ... //取消上一步驟中initComponents()前的注釋符號,其余代碼與上一步驟相同 initComponents(); ... } publicvoidinitComponents(){ lblSno=newJLabel("學(xué)號"); lblSno.setFont(newFont("微軟雅黑",Font.PLAIN,16)); lblSno.setBounds(120,67,54,15); this.add(lblSno); lblSname=newJLabel("姓名"); lblSname.setFont(newFont("微軟雅黑",Font.PLAIN,16)); lblSname.setBounds(120,133,54,15); this.add(lblSname); txtSno=newJTextField(); txtSno.setFont(newFont("微軟雅黑",Font.PLAIN,16)); txtSno.setBounds(200,67,147,28); txtSno.setColumns(30); this.add(txtSno); txtSname=newJTextField(); txtSname.setFont(newFont("微軟雅黑",Font.PLAIN,16)); txtSname.setBounds(200,133,147,28)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論