第5 6章圖形界面設(shè)計(jì)_第1頁(yè)
第5 6章圖形界面設(shè)計(jì)_第2頁(yè)
第5 6章圖形界面設(shè)計(jì)_第3頁(yè)
第5 6章圖形界面設(shè)計(jì)_第4頁(yè)
第5 6章圖形界面設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩41頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

《Java語言程序設(shè)計(jì)(一)》串講主講人:周立民圖形界面設(shè)計(jì)本部分重點(diǎn)內(nèi)容框架窗口、按鈕事件處理方法,面板和滾動(dòng)面板、布局設(shè)計(jì)、文本框事件的處理方法利用文本框和文本區(qū)域作數(shù)據(jù)輸入輸出的方法。選擇框、單選按鈕、菜單、對(duì)話框以及鼠標(biāo)事件的處理方法。3AWT概述創(chuàng)建GUI通過java.awt包容器組件布局管理器字體事件圖形和繪制方法包含AWT容器組件以圖形表示的對(duì)象允許用戶交互創(chuàng)建并構(gòu)造用于選擇新字體的對(duì)象用于用戶和系統(tǒng)交互AWT包含內(nèi)容使用AWT圖形方法相對(duì)于窗口繪制圖形定義GUI組件的位置AWT(重量級(jí)組件)4Swing創(chuàng)建GUI通過Javax.swing包Swing包含內(nèi)容容器組件可改變的外觀Java2D圖形繪制包含Swing組件以圖形表示的對(duì)象允許用戶交互使用Java2D繪制圖形可更換圖形界面的風(fēng)格Swing(輕量級(jí)組件,純Java組件)5輕量級(jí)組件可改變的外觀MVC結(jié)構(gòu)

性能更穩(wěn)定優(yōu)點(diǎn)SwingSwing

(與AWT相比)6Swing容器組件主窗口Swing應(yīng)用程序創(chuàng)建容器設(shè)置容器大?。▽?duì)框架及面板而言)設(shè)置容器可見度(對(duì)框架及面板而言)創(chuàng)建頂層容器頂層容器(每個(gè)應(yīng)用程序中至少有一個(gè))內(nèi)容面板主要顯示區(qū)域包含

GUI中的可視組件7

javax.swing包

常見容器JFrameJScrollPaneJPanel1.擴(kuò)展java.awt.Frame類2.用于在Swing程序中創(chuàng)建窗口3.包含邊框、標(biāo)題和用于關(guān)閉和圖標(biāo)化窗口的按鈕1.中間容器2.用于將較小的輕量級(jí)組件組合在一起3.與內(nèi)容窗格相似,面板在默認(rèn)情況下不透明管理視區(qū)、滾動(dòng)條及可選的行和列的標(biāo)題視區(qū)Swing容器組件8

javax.swing包1.擴(kuò)展java.awt.Frame類2.用于在Swing程序中創(chuàng)建窗口3.包含邊框、標(biāo)題和用于關(guān)閉和圖標(biāo)化窗口的按鈕常用的頂層容器JFrameJScrollPaneJPanel1.中間容器2.用于將較小的輕量級(jí)組件組合在一起3.與內(nèi)容窗格相似,面板在默認(rèn)情況下不透明1.管理視區(qū)、滾動(dòng)條及可選的行和列的標(biāo)題視區(qū)

Swing容器組件JFrame類的方法JFrame()JFrame(Stringtitle)voidpack()voidsetSize(intwidth,intheight)DimensiongetSize()voidsetTitle(Stringname)JPanel類的方法JPanel()JPanel(LayoutManagerlayout)voidadd(Componentcomp)VoidsetLayout(LayoutManagerlayout)JScrollPane類的方法JScrollPane()JScrollPane(Componentview)voidsetVerticalScrollBarPolicy(intconst)voidsetHorizontalScrollBarPolicy(intconst)9SwingGUI組件JTexFieldJComboBoxJCheckBoxJButtonJRadioButtonJLabelJTexArea10JLabelPropertiesDescription1.Alabelisnotinteractiveanddoesnotrespondtoanyinputevents1.Displaysalabelonform2.InSwing,labelscandisplaytextaswellasimagesJLabel方法說明JLabel()JLabel()創(chuàng)建一個(gè)默認(rèn)的JLabel實(shí)例JLabel(Stringtext)以指定的文本創(chuàng)建JLabel實(shí)例JLabel(Iconimage)以指定的圖像創(chuàng)建JLabel實(shí)例getText()返回標(biāo)簽顯示的文本字符串setIcon(Iconicon)定義標(biāo)簽將顯示的內(nèi)容setText(Stringtext)定義此組件將要顯示的單行文本11JTextFieldPropertiesDescription1.JTextFieldcomponentallowsentering/editingasinglelineoftext.1.JTextFieldisalightweightcomponentthatallowstheeditingofasinglelineoftextJTextField方法說明JTextField()構(gòu)造一個(gè)新的文本輸入框JTextField(Stringtext)構(gòu)造一個(gè)新的文本輸入框,以指定文本作為初始文本getColumns()返回文本字段中的列數(shù)setColumns(intcolumns)設(shè)置文本字段中的列數(shù),然后使布局無效setHorizontalAlignment(intvalue)設(shè)置文本字段中文本的水平對(duì)齊方式:JTextField.LEFTJTextField.CENTERJTextField.RIGHT12JButton屬性說明JButton類派生自javax.swing.AbstractButton類,該類由JComponent擴(kuò)展而來JButton對(duì)象包含一個(gè)文本標(biāo)簽、圖像圖標(biāo)或兩者,描述按鈕、文本/圖標(biāo)周圍的空白區(qū)域和邊框的用途JButton方法說明JButton()創(chuàng)建不帶文本和圖標(biāo)的按鈕JButton(Iconicon)創(chuàng)建帶圖標(biāo)的按鈕JButton(Stringtext)創(chuàng)建帶文本的按鈕JButton(Stringtext,Iconicon)創(chuàng)建帶文本和圖標(biāo)的按鈕setRolloverIcon(Iconimg)當(dāng)鼠標(biāo)經(jīng)過時(shí),顯示指定的圖標(biāo)setSelectedIcon(Iconimg)當(dāng)選擇按鈕時(shí),顯示img指定的圖標(biāo)13JCheckBoxJCheckBox方法說明JCheckBox()創(chuàng)建初始非選中的復(fù)選框,且不帶文本或圖標(biāo)JCheckBox(Stringtext)用指定的文本創(chuàng)建初始非選中的復(fù)選框。JCheckBox(Stringtext,booleanselected)用指定文本創(chuàng)建一個(gè)復(fù)選框,并指定是否初始選中該復(fù)選框14JRadioButtonJRadioButton方法說明JRadioButton()創(chuàng)建初始非選中的單選按鈕,不設(shè)置其文本JRadioButton(Stringtext)用指定的文本創(chuàng)建非選中的單選按鈕JRadioButton(Stringtext,booleanselected)用指定的文本和選擇狀態(tài)創(chuàng)建單選按鈕15JComboBox屬性說明在Swing中,組合框由

JComboBox類表示。ComboBox是文本字段和下拉列表的組合,讓用戶可以鍵入值或從顯示給用戶的值中進(jìn)行選擇JComboBox方法說明JcomboBox()創(chuàng)建一個(gè)下拉框?qū)嵗齛ddItem(Objectobj)將項(xiàng)添加至項(xiàng)的列表getItemAt(intindex)返回指定索引位置的列表項(xiàng)getItemCount()返回列表(作為對(duì)象)中的項(xiàng)數(shù)getSelectedItem()將當(dāng)前選擇的項(xiàng)作為一個(gè)對(duì)象返回getSelectedIndex()返回當(dāng)前選擇項(xiàng)的索引位置16事件處理程序!用戶交互事件單擊鼠標(biāo)按下/釋放鼠標(biāo)按鈕對(duì)象狀態(tài)改變調(diào)用事件處理確定發(fā)生的事件的類型確定生成的事件的組件編寫合適的代碼處理事件17

源對(duì)象監(jiān)聽器事件傳播事件的實(shí)例方法傳遞途徑代理事件模型Swing中的GUI組件適配器對(duì)象事件處理程序18

源對(duì)象監(jiān)聽器事件傳播事件實(shí)例方法傳遞途徑代理事件模型Swing中的GUI組件

適配器對(duì)象事件處理程序(java.awt.event)Event類接口ActionEventActionListenerAdjustmentEventAdjustmentListenerComponentEventComponentListenerFocusEventFocusListenerItemEventItemListenerWindowEventWindowListenerTextEventTextListenerMouseEventMouseListener,MouseMotionListenerKeyEventKeyListener19布局管理器用戶界面上的屏幕組件可以按照一定的格式布局例如水平排列,或按網(wǎng)格方式排列布局管理器類是一組類,它實(shí)現(xiàn)java.AWT.LayoutManager

接口幫助在容器中放置組件Java中可用的各種布局如下:BorderLayoutFlowLayoutGridLayout20BorderLayout上邊的組件

左邊的組件右邊的組件下邊的組件容器NorthSouthEastWestCENTER21WestEastBorderLayout上邊的組件

右邊的組件

左邊的組件下邊的組件容器NorthSouthCenter方法說明BorderLayout()創(chuàng)建新的BorderLayout,組件之間沒有間距

setHgap(inthgap)將組件間的水平間距設(shè)置為指定的值setVgap(intvgap)將組件間的垂直間距設(shè)置為指定的值22FlowLayout容器流布局是面板的默認(rèn)布局管理器左上角右下角依次排序的組件垂直或水平間距23FlowLayout容器流布局是面板的默認(rèn)布局管理器左上角右下角順序排列的組件垂直或水平間距方法說明FlowLayout()構(gòu)造新的中間對(duì)齊的FlowLayout,將垂直和水平間距保留為5個(gè)像素setAlignment(intalign)設(shè)置指定布局的對(duì)齊方式setHgap(inthgap)設(shè)置指定布局的水平間距setVgap(intvgap)設(shè)置指定布局的垂直間距24GridLayout行列組件大小相同重新調(diào)整組件大小以適合各自的單元指定網(wǎng)格中的行數(shù)和列數(shù),創(chuàng)建網(wǎng)格布局25GridLayout行列組件大小相同重新調(diào)整組件大小以適合各自的單元指定網(wǎng)格中的行數(shù)和列數(shù),創(chuàng)建網(wǎng)格布局方法描述GridLayout()創(chuàng)建網(wǎng)格布局,默認(rèn)為每個(gè)組件占用一整列和一單行GridLayout(introws,intcols)用指定的行數(shù)和列數(shù)創(chuàng)建網(wǎng)格布局。GridLayout(introws,intcols,inthgap,intvgap)用指定的行數(shù)和列數(shù)、指定的水平和垂直間距創(chuàng)建網(wǎng)格布局setColumns(intcols)將相應(yīng)布局中的列數(shù)設(shè)置為指定值setHgap(inthgap)將相應(yīng)布局中的水平間距設(shè)置為指定值setVgap(intvgap)將相應(yīng)布局中的垂直間距設(shè)置為指定值setRows(introws)將相應(yīng)布局中的行數(shù)設(shè)置為指定值26總結(jié)Swing是在AWT基礎(chǔ)上發(fā)展起來的輕量級(jí)組件,用于開發(fā)JavaGUI應(yīng)用程序容器對(duì)象是能夠容納其他Swing組件的一種組件。容器負(fù)責(zé)對(duì)它包含的組件進(jìn)行布局。常用的容器有

JFrame、JPanel

和JScrollPane組件可置于用戶界面上,并可使其顯示或改變大小。常用的組件有JLabel、JTextField、JTextArea、JButton、JCheckBox、JRadioButton和JComboBox要處理事件,可使用事件處理程序,以執(zhí)行所需操作

標(biāo)準(zhǔn)事件適配器或匿名內(nèi)部類適配器可用于處理事件布局管理器可在容器中自動(dòng)定位組件27菜單顯示一個(gè)項(xiàng)目列表,指明用戶可以執(zhí)行的各項(xiàng)操作

文件編輯格式幫助字體段落項(xiàng)目符號(hào)和編號(hào)背景色紅色綠色黑色菜單子菜單28菜單包含javax.swing

包的菜單類的類層次結(jié)構(gòu)ObjectComponentContainerJComponentJMenuBarJSeparatorAbstractButtonJPopupMenuJMenuJCheckboxMenuItemJRadioButtonMenuItemJMenuItem29JMenuBar類只要選中JMenuItem,就會(huì)產(chǎn)生通過重寫actionPerformed()方法進(jìn)行處理的ActionEvent

JMenuBar文件編輯格式幫助新建打開關(guān)閉JMenuJMenuItem30JMenuBar類JMenubar類SingleSelectionModel跟蹤當(dāng)前選定的菜單31方法\說明add(Jmenum)將菜單m添加至菜單條中conuntJMenus()獲得菜單條中菜單的個(gè)數(shù)getJMenu(intp)取得菜單條中的菜單Remove(Jmenum)刪除菜單條中的菜單mJMenuBar類32JMenu類JMenu

組件有兩個(gè)用途當(dāng)它添加至JMenuBar

時(shí),將顯示為文本字符串當(dāng)用戶單擊此菜單項(xiàng)時(shí),則顯示一個(gè)彈出式菜單

JMenuJMenuItemJSeparatorJCheckBoxMenuItemJRadioButtonMenuItem33JMenu類JPopupMenuJMenu類

當(dāng)用戶單擊JMenu時(shí),顯示JMenu的菜單項(xiàng)

34方法\說明Jmenu()建立一個(gè)空標(biāo)題的菜單Jmenu(Strings)建立一個(gè)標(biāo)題為s的菜單add(JMenuItemitem)向菜單增加由參數(shù)item指定的菜單項(xiàng).add(Jmenumenu)向菜單增加由參數(shù)menu指定的菜單,實(shí)現(xiàn)在菜單嵌入子菜單.addSeparator()在菜單選項(xiàng)之間畫一條分隔線JMenu類35方法\說明getItem(intn)得到指定索引處的菜單項(xiàng)getItemCount()得到菜單項(xiàng)數(shù)目Insert(MenuItemitem,intn)在菜單的位置n插入菜單項(xiàng)itemremove(intn)刪除菜單位置n的菜單項(xiàng)removeAll()刪除菜單中所有菜單項(xiàng)JMenu類36JMenuItem類JMenuItem

組件通常是JMenu

或JPopupMenu

中選項(xiàng)的標(biāo)題

在JMenuItem

中除了可以添加字符串外,還可添加圖標(biāo)37方法\說明JMenuItem()構(gòu)造無標(biāo)題的菜單項(xiàng)JMenuItem(Strings)構(gòu)造有標(biāo)題的菜單項(xiàng)setEnabled(booleanb)設(shè)置當(dāng)前菜單項(xiàng)是否可以被選擇getLable()/setLable()得到/設(shè)置菜單選項(xiàng)的名稱addActionListenter(ActionListentere)為菜單項(xiàng)設(shè)置監(jiān)視器,監(jiān)視器接受點(diǎn)擊某個(gè)菜單項(xiàng)的動(dòng)作事件.JMenuItem類38JMenuItem類importjava.awt.Dimension;importjavax.swing.JFrame;importjavax.swing.JPanel;importjavax.swing.JMenuBar;importjavax.swing.JMenu;importjavax.swing.JMenuItem;publicclassMenuFrameextendsJFrame{JPanelcontentPane;JMenuBarmnuNotepad=newJMenuBar();JMenumnuFile=newJMenu();JMenumnuEdit=newJMenu();JMenumnuFormat=newJMenu();JMenuItemmnuNew=newJMenuItem();JMenuItemmnuOpen=newJMenuItem();JMenuItemmnuSave=newJMenuItem();JMenuItemmnuSaveAs=newJMenuItem();JMenuItemmnuExit=newJMenuItem();JMenumnuHelp=newJMenu();publicMenuFrame(){try{setDefaultCloseOperation(EXIT_ON_CLOSE);jbInit();}catch(Exceptionexception){exception.printStackTrace();}}privatevoidjbInit()throwsException{contentPane=(JPanel)getContentPane();contentPane.setLayout(null);this.setJMenuBar(mnuNotepad);setSize(newDimension(400,300));setTitle(“菜單");mnuFile.setText(“文件");mnuEdit.setText(“編輯");mnuFormat.setText(“格式");mnuNew.setText(“新建");mnuOpen.setText(“打開...");mnuSave.setText(“保存");mnuSaveAs.setText(“另存為...");mnuExit.setText(“退出");mnuHelp.setText(“幫助");mnuNotepad.add(mnuFile);mnuNotepad.add(mnuEdit);mnuNotepad.add(mnuFormat);mnuNotepad.add(mnuHelp);mnuFile.add(mnuNew);mnuFile.add(mnuOpen);mnuFile.add(mnuSave);mnuFile.add(mnuSaveAs);mnuFile.add(mnuExit);}}39對(duì)話框Java中的對(duì)話框是一個(gè)容器,它充當(dāng)父容器的子容器.對(duì)話框分為強(qiáng)制對(duì)話框(模式對(duì)話框)和非強(qiáng)制對(duì)話框Jdialog類用做對(duì)話框的基類,JOptionPane

這個(gè)類支持的功能有:布局標(biāo)準(zhǔn)對(duì)話框指定對(duì)話框的標(biāo)題和文本提供圖標(biāo)和自定義按鈕文本JOptionPane

可用于顯示各種圖標(biāo),如用于警告消息、問題、錯(cuò)誤和信息等的圖標(biāo)“消息”對(duì)話框“錯(cuò)誤”對(duì)話框“問題”對(duì)話框40對(duì)話框以下是一些可供JOptionPane類使用的構(gòu)造方法:JOptionPane()JOptionPane(Object

message)JOptionPane(Object

message,int

messageType)JOptionPane(Object

message,int

messageType,int

optionType)JOptionPane(Object

message,int

messageType,int

optionType,Iconicon)41對(duì)話框JOptionPane

類的showXxxDialog

方法是顯示模式對(duì)話框最常用的方法showXxxDialogshowMessageDialog()showOptionDialog()showXxxDialog()方法的一些重載版本42鼠標(biāo)事件與鍵盤事件Java語言為處理鼠標(biāo)事件提供兩個(gè)接口:MouseListener接口和MouseM

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論