Java語言程序設(shè)計:ch08 Swing圖形用戶界面程序設(shè)計_第1頁
Java語言程序設(shè)計:ch08 Swing圖形用戶界面程序設(shè)計_第2頁
Java語言程序設(shè)計:ch08 Swing圖形用戶界面程序設(shè)計_第3頁
Java語言程序設(shè)計:ch08 Swing圖形用戶界面程序設(shè)計_第4頁
Java語言程序設(shè)計:ch08 Swing圖形用戶界面程序設(shè)計_第5頁
已閱讀5頁,還剩59頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

Java語言程序設(shè)計第8章Swing圖形用戶界面程序設(shè)計2013.112023/1/112本章總體綱要簡介組件和容器布局管理器事件處理模型(難點)高級GUI菜單表格MDIGUI簡介用戶界面是用戶與計算機系統(tǒng)進行交互的接口,圖形用戶界面(GUI)是一種以圖形方式進行人機交互的界面。Java實現(xiàn)了一組用于GUI設(shè)計的標準組件的類:目前建議使用SwingSwing的類層次結(jié)構(gòu)java.awt.Component

|——java.awt.Container

——java.awt.Window

——java.awt.Frame—javax.swing.JFrame

——javax.Dialog—javax.swing.JDialog

——javax.swing.JWindow

——java.awt.Applet-javax.swing.JApplet

——javax.swing.Box

——javax.swing.JComponet組件類的層次結(jié)構(gòu)java.lang.Object|+--java.awt.Component|+--java.awt.Container|+--javax.swing.JComponentJComponent——大多數(shù)Swing組件類父類3種頂層容器JFrameJDialogJAppletSwing程序結(jié)構(gòu)簡介Swing的程序設(shè)計一般可按照下列流程進行:

1.引入Swing包(Importjavax.swing.*;)

2.選擇“外觀和感覺”(

FlowLayout BorderLayout、GridLayout、CardLayout、

GridBagLayout、

BoxLayout、

setLayout)

3.設(shè)置頂層容器(JFrame,JApplet,JDialog和Jwindow)

4.設(shè)置組件

JLabel、JTextField、Jbutton、JCheckBox、JComboBox、JTextArea

5.向容器中添加組件(

pane.add(button);)

6.在組件周圍添加邊界(setBorder)

7.進行事件處理publicvoidactionPerformed(ActionEvente){}6本章總體綱要簡介組件和容器布局管理器事件處理模型高級GUI菜單表格MDI組件和容器在javax.swing包中,有兩種類型的組件:容器和組件。容器(container)各種組件必須放在容器,容器本身也是一種組件頂層容器,如JFrame,JApplet,JDialog和JWindow其它容器,如JPanel,JScrollPane,JSplitPane,JToolBar

組件(component)基本控制組件,如JButton,JComboBox,JList,JMenu,JSlider,JTextField不可編輯的信息顯示組件,如JLabel,JProgressBar,JToolTip可編輯的信息顯示組件,如JColorChooser,JFileChooser,JTable,JTextArea一些GUI容器與組件頂層容器框架(JFrame)對話框(JDialog)小應(yīng)用程序(Applet與JApplet)中間容器:面板(JPanel)其它容器JScrollPaneJSplitPane常用組件標簽(JLabel)文本框(JTextField)按鈕(JButton)復選框(JCheckBox)組合框(JComboBox)文本(JTextArea)頂層容器——框架(JFrame)一個簡單的例子:importjava.awt.*;importjava.swing.*;publicclassMyFrameextendsJFrame{publicstaticvoidmain(Stringargs[]){

MyFramefr=newMyFrame(“HelloOutThere!”); fr.setSize(500,500); fr.setBackground(color.green); fr.setVisible(true); }publicMyFrame(Stringstr){ super(str); }}HelloOutThere!框架(JFrame)閱讀教材P245例程理解:對JFrame添加組件有兩種方式:1)用getContentPane()方法獲得JFrame的內(nèi)容面板,再對其加入組件:

Containerc=frame.getContentPane()c.add(childComponent)2)建立一個JPanel或JDesktopPane之類的中間容器,把組件添加到容器中,用setContentPane()方法把該容器置為JFrame的內(nèi)容面板:JPanelcontentPane=newJPanel();

……//把其它組件添加到Jpanel中;

frame.setContentPane(contentPane);

//把contentPane對象設(shè)置成為frame的內(nèi)容面板Java程序設(shè)計201311基于Swing實現(xiàn)的框架界面Importjava.awt.*;Importjavax.swing.*;publicclassJFrameDemo{ JFramef; JButtonb; Containerc; publicJFrameDemo(){ f=newJFrame("JFrameDemo");//頂層容器 b=newJButton(“Pressme”);//基本控制組件

c=f.getContentPane();//用getContentPane()方法獲得JFrame的內(nèi)容面板 c.add(b); f.setSize(200,200); f.setVisible(true); } publicstaticvoidmain(Stringargs[]){ newJFrameDemo(); }}頂層容器——JDialog(對話框)JDialog與JFrame類似,是有邊框、有標題、可獨立存在的頂級容器。對話框分為無模態(tài)對話框和模態(tài)對話框。模態(tài)對話框只讓程序響應(yīng)對話框內(nèi)部的事件,對于對話框以外的事件程序不響應(yīng);而無模態(tài)對話框可以讓程序響應(yīng)對話框以外的事件。JDialog的主要構(gòu)造方法有:JDialog()JDialog(Frame

owner)JDialog(Frame

owner,boolean

modal)JDialog(Frame

owner,String

title)JDialog(Frame

owner,String

title,boolean

modal)

其中,參數(shù)owner指明對話框所依賴的窗口,title指明對話框的標題,modal指明對話框是否為模態(tài)。

閱讀例程:教材P249JOptionPane閱讀例程:教材P251中間容器——面板(JPanel)JPanel組件是一個中間容器,是一塊無邊框的區(qū)域,必須放在Window或Frame中,用于將小型的輕量級組件組合在一起。JPanel的默認布局為FlowLayout?!璮r=newJFrame(“FramewithPanel”);JPanelpan=newJPanel();fr.setSize(200,200);fr.setBackground(Color.blue);pan.setSize(100,100);pan.setBackground(Color.yellow);fr.add(pan);fr.setVisible(true);…}FramewithPanel容器——滾動窗口JScrollPane類JScrollPane類帶有滾動條,并且只能向滾動窗口添加一個組件。要將多個組件放在同一個滾動窗口里,可以先將其添加到一個Panel對象里,再將該Panel對象添加到滾動窗口里。JScrollPane類構(gòu)造方法:JScrollPane()JScrollPane(inta)參數(shù)a:指定滾動條的初始狀態(tài),ALWAYS、NEEDED、NEVER。JScrollPane(Componentview)參數(shù)view指定需要加上滾動條功能的組件閱讀例程:教材P259容器——JSplitPane(分隔板)JSplitPane提供可拆分窗口,支持水平拆分(JSplitPane.HORIZONTAL_SPLIT)和垂直(JSplitPane.VERTICAL_SPLIT)拆分并帶有滑動條。常用方法有:JSplitPane

(int

newOrientation,Component

newLeftComponent,Component

newRightComponent)

創(chuàng)建一個具有指定方向和指定組件的新JSplitPane。addImpl(Componentcomp,Objectconstraints,intindex)

//增加指定的組件setTopComponent(Componentcomp)//設(shè)置頂部的組件setDividerSize(intnewSize)//設(shè)置拆分的大小setUI(SplitPaneUIui)//設(shè)置外觀和感覺Java程序設(shè)計201317分隔板(JSplitPane)效果圖2023/1/1118本章總體綱要基本GUI組件布局管理器事件處理模型高級GUI菜單表格MDIJava程序設(shè)計2013LayoutManager容器中組件的布局通常由LayoutManager控制。

LayoutManager負責決定容器的布局策略及容器內(nèi)

每個組件的大小。每個容器都由一個缺省的LayoutManager,可通過

setLayout()方法改變。

Java提供的布局管理器

FlowLayout

BorderLayout

GridLayout

CardLayout

GridBagLayout

BoxLayout(*,swing)

LayoutManagerSwing

GUI程序設(shè)計布局管理一般思路:先通過頂層容器(如JFrame)的方法getContentPane獲取頂層容器的內(nèi)容窗格;再通過類java.awt.Container的方法setLayout設(shè)置內(nèi)容窗格的布局管理器。如例程:教材P266閱讀教材例程自學該節(jié)內(nèi)容Java程序設(shè)計201321使用布局管理器的基本規(guī)則(1)若組件盡量充滿容器空間,可以考慮使用BorderLayout、BoxLayout或GridBagLayout。(2)若用戶需要在緊湊的一行中以組件的自然尺寸顯示較少的組件,用戶可以考慮用面板容納組件,并使用面板的默認布局管理器FlowLayout。(3)若用戶需要在多行或多列中顯示一些同樣尺寸的組件,GridLayout最適合此情況。(4)若界面較為復雜,可先使用面板來容納組件,然后選用適當?shù)牟季止芾砥鳌ava程序設(shè)計201322布局管理器嵌套實際上是容器的嵌套,被嵌套的容器可以具有不同的布局管理器;在嵌套的布局管理器中,JPanel通常起到了“橋”的作用.例子:實現(xiàn)GUI的步驟分析panel1panel2panel3panel5panel4panel6panel8panel7有興趣的同學可以用代碼實現(xiàn)2023/1/1124本章總體綱要基本GUI組件布局管理器事件處理模型高級GUI菜單表格MDI事件處理模型GUI是由事件(event)驅(qū)動的當用戶與GUI交互可以產(chǎn)生事件(events)一些常見的交互方式移動鼠標用鼠標點擊按鈕在文本框中輸入數(shù)據(jù)關(guān)閉窗口等事件處理模型是Java語言提供的一種人機交互模型,它使得用戶能夠通過鼠標、鍵盤或其他輸入設(shè)備來控制程序的執(zhí)行流程。事件處理機制事件監(jiān)聽器A事件監(jiān)聽器B事件對象事件對象主要涉及三種對象事件源能夠產(chǎn)生事件的對象都可以成為事件源,如文本框、按鈕、鍵盤、鼠標等事件對象(Aneventobject)事件對象記錄了事件源以及處理該事件所需要的各種信息事件信息被包含在類AWTEvent或其子類的實例對象中事件對象所對應(yīng)的類以Event結(jié)尾命名基本事件對象所對應(yīng)的類位于包java.awt.event中高級事件對象所對應(yīng)的類位于包javax.swing.event.接受事件對象,并處理事件對象事件分類

java.util.EventObjectJava.awt.AWTEventActionEventAdjustmentEventComponentEventItemEventTextEvent…ContainerEventFocusEventWindowEventPaintEventInputEventMouseEventKeyEvent教材P284表8.3列出了一些常見事件類監(jiān)聽器接口對于每種類型的事件,都定義了相應(yīng)的事件處理接口;XXXEvent對應(yīng)的事件處理接口通常為XXXListener。

java.util.EventListenerActionListenerItemListenerWindowListenerKeyListenerMouseListenerMouseMotionListener…教材P284表8.4列出了一些常見事件監(jiān)聽器接口和事件適配器類Java程序設(shè)計201329事件接口及處理方法事件描述信息接口名稱方法(事件)點擊按鈕、點擊菜單項、文本框按回車等動作ActionListeneractionPerformed(ActionEvent)選擇了可選項的項目,如復選框、單選按鈕、下拉選項框ItemListeneritemStateChanged(ItemEvent)文本組件內(nèi)容改變TextListenertextValueChanged(TextEvent)移動了滾動條等組件AdjustmentListeneradjustmentVlaueChanged(AdjustmentEvent)鼠標移動MouseMotionListenermouseDragged(MouseEvent)mouseMoved(MouseEvent)鼠標點擊等MouseListenermousePressed(MouseEvent)mouseReleased(MouseEvent)mouseEntered(MouseEvent)mouseExited(MouseEvent)mouseClicked(MouseEvent)Java程序設(shè)計2013事件接口及處理方法(續(xù))描述信息接口名稱方法(事件)鍵盤輸入KeyListenerkeyPressed(KeyEvent)keyReleased(KeyEvent)keyTyped(KeyEvent)組件收到或失去焦點FocusListenerfocusGained(FocusEvent)focusLost(FocusEvent)組件移動、縮放、顯示/隱藏等ComponentListenercomponentMoved(ComponentEvent)componentHidden(ComponentEvent)componentResized(ComponentEvent)componentShown(ComponentEvent)實例按鈕事件方法1:常規(guī)方法方法2:采用另一個類中實現(xiàn)事件接口的方法方法3:采用匿名內(nèi)部類實現(xiàn)事件接口的方法程序見文檔“chap8_samples.doc”通過實例理解:事件源、事件對象、事件監(jiān)聽器實例:如何監(jiān)聽多個組件事件?例:編寫一個在文本字段中輸入一個數(shù)的程序。創(chuàng)建一個每當用戶單擊一次就將此數(shù)加一的按鈕。創(chuàng)建另一個每當用戶單擊一次就將此數(shù)減一的按鈕。界面效果如下圖所示。程序見文檔“chap8_samples.doc”33選項事件ItemEvent的處理可觸發(fā)選項事件的組件有:

JCheckBox,JRadioButton,JComboBox注冊事件的方法:publicvoidaddItemListener(ItemListenere)處理事件的接口ItemListener,僅含有方法:publicvoiditemStateChanged(ItemEvente)實例:用JComboBox和JCheckBox來演示可選項目事件接口,界面如下圖所示:鼠標事件處理鼠標事件能夠被GUI組件捕獲到基本事件監(jiān)聽器的接口MouseListenerMouseMotionListenerMouseWheelListenerMouseInputListener是包javax.swing.event的接口包含了MouseListener和MouseMotionListener的所有成員方法鼠標事件對應(yīng)的類是MouseEvent,其中定義了以下一些常量和方法:MOUSE_PRESSED

鼠標按下MOUSE_CLICKED

鼠標單擊MOUSE_RELEASED鼠標松開MOUSE_ENTERED

鼠標進入有鼠標事件監(jiān)聽的容器MOUSE_EXITED

鼠標離開有鼠標事件監(jiān)聽的容器getX()取得鼠標的X坐標getY()取得鼠標的Y坐標getClickCount()取得鼠標連續(xù)單擊的次數(shù)這三個接口是包java.awt.event的接口Java程序設(shè)計2013MouseListener接口MouseListenermouseClicked(MouseEvente)mouseEntered(MouseEvente)mouseExited(MouseEvente)mousePressed(MouseEvente)mouseReleased(MouseEvente)MouseListener接口實例程序見文檔“chap8_samples.doc”Java程序設(shè)計2013MouseMotionListener接口通過該接口掌握鼠標的坐標,并處理拖曳鼠標的操作

MouseMotionListenermouseDragged(MouseEvente)mouseMoved(MouseEvente)MouseMotionListener接口實例程序見文檔“chap8_samples.doc”Java程序設(shè)計2013事件適配器事件適配器類(Adapter)只實現(xiàn)接口所需要處理的方法通過覆蓋對于接口中的其它方法:系統(tǒng)會提供默認的方法(方法體為空)事件適配器類與事件監(jiān)聽器接口的區(qū)別?利用事件適配器類,只需實現(xiàn)所需處理的方法利用事件監(jiān)聽器接口,必須實現(xiàn)所有的方法事件適配器類與事件監(jiān)聽器接口的執(zhí)行效率?利用事件適配器類處理事件,并不能提高執(zhí)行效率事件偵聽器接口、適配器類與方法目錄ListenerInterfaceAdapterClassMethodsActionListener

無actionPerformedAdjustmentListener

無adjustmentValueChangedComponentListener

ComponentAdapter

componentHidden

componentMoved

componentResized

componentShownContainerListener

ContainerAdaptercomponentAdded

componentRemoved

FocusListener

FocusAdapter

focusGained

focusLostItemListener

無itemStateChanged

事件偵聽器接口、適配器類與方法目錄ListenerInterfaceAdapterClassMethodsKeyListener

KeyAdapterkeyPressed

、keyReleased

keyTypedMouseListener

MouseAdapter

mouseClicked

mouseEntered

mouseExited

mousePressed

mouseReleasedMouseMotionListener

MouseMotionAdaptermouseDragged

mouseMoved

TextListener

無textValueChangedWindowListener

WindowAdapterwindowActivated

windowClosed

windowClosing

windowDeactivated

windowDeiconified

windowIconified

windowOpenedJava程序設(shè)計2013事件適配器類與事件監(jiān)聽器接口Adapter類實現(xiàn)了相應(yīng)Listener接口,但所有方法體都是空的。用戶可以把自己的監(jiān)聽器類聲明為adapter類的子類,便可以只重寫需要的方法。…publicclassMouseClickHandlerextendsMouseAdapter{ publicvoidmouseClicked(MouseEvente){

…. }}鍵盤事件處理鍵盤事件對象一般由類KeyEvent包裝,記錄從鍵盤上輸入的字符等信息。鍵盤事件的監(jiān)聽者對應(yīng)的接口為KeyListener,適配器為KeyAdapterstatic

StringgetKeyText(int

keyCode)

//返回描述keyCode的String,如“HOME”、“F1”或“A”。鍵盤事件處理鍵盤事件對應(yīng)的類是KeyEvent,其中定義了以下一些常量和方法:KEY_PRESSED

“按下鍵”事件。KEY_RELEASED

:“釋放鍵”事件。KEY_TYPED

:“鍵入鍵”事件。VK_*:代表鍵盤功能鍵chargetKeyChar()

返回與此事件中的鍵相關(guān)聯(lián)的字符。intgetKeyCode()

返回與此事件中的鍵相關(guān)聯(lián)的整數(shù)keyCode。

intgetKeyLocation()返回產(chǎn)生此按鍵事件的鍵位置。某些鍵在鍵盤上出現(xiàn)多次,如左右shift鍵。另外,某些鍵則出現(xiàn)在數(shù)字鍵盤上。此方法提供了一種區(qū)分這些鍵的方式。

static

StringgetKeyModifiersText(int

modifiers)

//

返回描述組合鍵的String,如“Shift”或“Ctrl+Shift”。鍵盤事件偵聽器接口java.awt.event.FocusListenerfocusGained(FocusEvente);

//獲得鍵盤焦點(可以輸入字符并被事件源捕捉到)focusLost(FocusEventt);//失去鍵盤焦點(事件源不再接收到鍵盤的輸入)java.awt.event.KeyListenerkeyPressed(KeyEvente)keyReleased(KeyEvente)keyTyped(KeyEvente)實例程序見教材P302Java程序設(shè)計2013鍵盤事件處理getKeyCode()

鍵盤上每一個按鈕都有對應(yīng)碼(Code),可用來查知用戶按了什么鍵,如[Shift]鍵code為16。利用getKeyCode()方法就可以得知這個碼這個方法在keyTyped()上是無法檢測出來的,因為keyTyped()只管用戶輸入的字符,而不會管到鍵盤的對應(yīng)碼,算是處理比較高層事件的方法因為keyTyped()方法是與鍵盤無關(guān)的,因為不同的鍵盤可能有不同的對應(yīng)碼(如WindowsU.S.keyboard與windowsFrenchkeyboard就有不同的對應(yīng)碼)。因此需要將getKeyCode()方法寫在keyPressed()或keyReleased()方法中才會有效,因為這兩個方法是處理比較低層的方法。Java程序設(shè)計2013鍵盤事件處理getKeyModifiersText()

getKeyModifiersText()方法可返回修飾鍵的字符串,如返回“Shift”字符串或是“Ctrl+Shift”字符串,但應(yīng)先傳入modifiers參數(shù)??梢灾苯邮褂胓etModifiers()方法來得到modifiers參數(shù)。這個方法是定義在InputEvent類中,而KeyEvent繼承它,因此就能直接使用這個方法。同樣也必須將getKeyModifiersText()與getModifiers()方法放在keyPressed()或keyReleased()方法中才會有效。2023/1/1146本章總體綱要基本GUI組件布局管理器事件處理模型高級GUI菜單表格MDIJava程序設(shè)計2013菜單菜單顯示項目列表,指明各種任務(wù),選擇或單擊某個選項時會打開另一個列表或子菜單。Swing菜單由菜單欄、菜單和菜單項構(gòu)成,菜單欄是所有菜單和菜單項的根菜單只能加入到具有成員方法(setJMenuBar)的類的實例對象中例如:JFrame

和JAppletJava程序設(shè)計2013菜單Menu——菜單系統(tǒng)菜單系統(tǒng)一般菜單可撕下菜單幫助菜單類MenuBar選項#1菜單中的菜單選項#3選項#4選項#1選項#2第三層菜單選項#3選項#1選項#2類Menu類MenuItem選項#2菜單容器非菜單容器Java程序設(shè)計2013菜單組件類圖JMenuBarJPopupMenuAbstractButtonJSeperatorJMenuItemJMenuJCheckBoxMenuItemJRadioButtonMenuItemJComponentContainerComponentObjectJava程序設(shè)計2013編寫具有菜單(Menu)的程序創(chuàng)建菜單欄:(menubar)給容器設(shè)置菜單欄,容器舉例:JFrame、JAppletsetJMenuBar(myBar);創(chuàng)建菜單(menu)設(shè)置記憶符(Mnemonic)創(chuàng)建菜單項(menuItem)設(shè)置記憶符(Mnemonic)類似于按鈕,設(shè)置事件監(jiān)聽器,進行事件處理Java程序設(shè)計2013編寫具有菜單(Menu)的程序?qū)⒉藛渭尤氲讲藛螜谥衜yMenuBar.add(myMenu);如果需要子菜單,則將子菜單加入到菜單中myMenu.add(mySubMenu);將菜單項加入到適當?shù)牟藛沃衜yMenu.add(myItem);在菜單項間增加隔(separator)這不是必須的

myMenu.addSeparator();實例程序見教材P305Java程序設(shè)計2013JMenuBarJMenuBar是可通過JFrame、JWindow或JInternalFrame的根窗格添加至容器的組件。由多個JMenu組成,每個JMenu在JMenubar中都表示為字符串。JMenuBar需要兩個附加類:SingleSelectionModel類:跟蹤當前選定的菜單LookAndFeel類:負責繪制菜單欄以及對在其中發(fā)生的事件作出響應(yīng)Java程序設(shè)計2013JMenuJMenu在JMenuBar下以文本字符串形式顯示,而在用戶單擊它時,則以彈出式菜單顯示。JMenu具有兩個附加類:JPopupMenu:用于顯示JMenu的菜單項LookAndFeel:負責繪制菜單欄中的菜單以及對在其中發(fā)生的所有事件作出響應(yīng)JPopupMenu方法用途publicJMenuItemadd(JMenuItemmenuItem)將指定菜單項附加至菜單末尾publicJMenuItemadd(Strings)使用指定文本新建菜單項,并將其添加至菜單末尾publicvoidshow(Componentc,intx,inty)在組件c的坐標(x,y)位置顯示彈出式菜單publicbooleanisPopupTrigger()確定鼠標事件是否為平臺的彈出觸發(fā)器Java程序設(shè)計2013JMenuItemJMenu或JPopupMenu中的一個組件,以文本字符串形式顯示,可以具有圖標JMenuItem的外觀可以修改,如字體、顏色、背景、邊框等除字符串外,在JMenuItem中還可以添加圖標Java程序設(shè)計2013JCheckBoxMenuItem將復選框作為其項目,復選框是使用JCheckBox類創(chuàng)建的,可有文本字符串和(或)圖標在單擊并釋放JCheckBoxMenuItem時,菜單項的狀態(tài)會變?yōu)檫x定或取消選定Java程序設(shè)計2013JRadioButtonMenuItem除了在任何時間點都只能選擇一個單選按鈕外,其他的與復選框類似,可有文本字符串和(或)圖標單擊選定的單選按鈕不會改變其狀態(tài)單擊未選定的單選按鈕時將取消選定此前選定的單選按鈕菜單使用示例(2)JMenuBarjmb=newJMenuBar();//定義菜單欄

JMenufile=newJMenu("File");//定義菜單

JMenuItemitem1=newJMenuItem("Open");//定義菜單項

JMenuItemitem2=newJMenuItem("Save");JMenuItemitem3=newJMenuItem("Close");JRadioButtonMenuItemJRMenuItem1=newJRadioButtonMenuItem("one",(Icon)newImageIcon("face5.gif"));JRadioButtonMenuItemJRMenuItem2=newJRadioButtonMenuItem(“two”);//定義互斥菜單項,其中的“one”帶圖標

ButtonGroupbgroup=newButtonGroup();//定義選項組對象

JPopupMenupopup=newJPopupMenu("mypopup");//定義彈出式菜單

JMenuItemit1=newJMenuItem("popupone");//定義彈出式菜單的菜單項

JMenuItemit2=newJMenuItem("popuptwo");Java程序設(shè)計2013菜單使用示例(3)setJMenuBar(jmb);jmb.add(file);//將菜單File加入菜單欄

file.add(item1);//加入菜單File的各菜單項

file.add(item2);file.add(item3);file.addSeparator();//菜單File中加入一分割線

bgroup.add(JRMenuItem1);//將互斥菜單項加入選項組

bgroup.add(JRMenuItem2);file.

溫馨提示

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

評論

0/150

提交評論