圖形用戶界面與事件處理.ppt
《圖形用戶界面與事件處理.ppt》由會員分享,可在線閱讀,更多相關(guān)《圖形用戶界面與事件處理.ppt(139頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1 第13章圖形用戶界面與事件處理 Java的GUI類簡介Java事件處理布局管理器Swing組件的使用 2 13 1Java的GUI類簡介 Java有兩組GUI類 AWT AbstractWindowingToolkit 類及改進的Swing類 AWT類是原始的JavaGUI類 在java awt包中 Swing類對AWT類進行了擴充 在javax swing包中 3 13 1Java的GUI類簡介 Swing類的名稱與AWT類的名稱類似 但其名稱由字母J開頭 GUI的類層次 4 13 1Java的GUI類簡介 帶有GUI組件的框架 5 13 1Java的GUI類簡介 常用的GUI組件 1 6 13 1Java的GUI類簡介 常用的GUI組件 2 7 13 1Java的GUI類簡介 AWT類簡介要創(chuàng)建GUI窗口 就需要編寫一個繼承自Frame的子類 并進行實例化 然后調(diào)用父類方法setVisible使其可見 如果想在GUI窗口中增加一個按鈕 則可實例化Button類 然后調(diào)用Frame子類實例的add方法添加到窗口中 8 13 1Java的GUI類簡介 AWT類簡介定義AWTFrameWithButton類 9 13 1Java的GUI類簡介 AWT類簡介此框架存在兩個問題 首先 按鈕填充了整個空間 外觀有些奇怪 其次 此框架無法檢測到按鈕 單擊按鈕時 沒有任何反應(yīng) 10 13 1Java的GUI類簡介 Swing類簡介對前面的AWTFrameWithButton類進行修改 引入javax swing包 而不是引入java awt包 擴充Jframe類 而不是擴充Frame類 按鈕名稱以字母J開頭 將語句this add closeButton 改為this getContentPane add closeButton 11 13 1Java的GUI類簡介 Swing類簡介SwingFrameWithButton類的定義 12 13 1Java的GUI類簡介 Swing類簡介Swing的組件和容器層次頂層容器 JFrame JDialog JApplet 其他組件都必須放在頂層容器上才能顯現(xiàn)出來 中間層容器 作用是容納其他組件 分為一般用途和特殊用途兩類 一般用途的有JPanel JScrollPane JSplitPane JTabbedPane JToolBar五類 特殊用途的有JInternalFrame JRootPane兩類 13 13 1Java的GUI類簡介 Swing類簡介Swing的組件和容器層次原子組件 是在圖形用戶界面中和用戶進行交互的組件 根據(jù)功能不同 可將其分為三類 不可編輯信息的組件 JLabel JProgressBar JToolTip 輸入信息的組件 JButton JCheckBox JRadioButton JComboBox JTextField JList JMenu JSlider JSpinner JTexComponent等 提供格式化信息并允許用戶選擇的組件 JColorChooser JFileChooser JTable及JTree組件 14 13 1Java的GUI類簡介 三層容器舉例 15 13 1Java的GUI類簡介 三層容器舉例 16 13 2事件處理 基本概念 事件用戶與系統(tǒng)交互而產(chǎn)生的鍵盤或鼠標(biāo)動作稱為事件 事件除了可以由用戶單擊鼠標(biāo)等操作生成外 也可以由程序代碼或系統(tǒng)生成 不同事件的類型由不同的類表示 在java awt event包中定義了很多事件類 例如 ActionEvent ItemEvent MouseEvent KeyEvent等 17 13 2事件處理 基本概念 事件源產(chǎn)生事件的組件稱為事件源 例如 單擊按鈕產(chǎn)生的事件由ActionEvent類表示 稱為ActionEvent事件 按鈕就是事件源 18 13 2事件處理 基本概念 事件監(jiān)聽器事件監(jiān)聽器也稱為事件監(jiān)聽者 是當(dāng)一個事件發(fā)生時被通知的對象 它負責(zé)接收對象 并進行處理 Java中的每種事件類都有一個對應(yīng)的接口 稱為事件監(jiān)聽器接口 接口中聲明了一個或多個抽象的事件處理方法 凡是需要接收并處理事件對象的類 都需要實現(xiàn)相應(yīng)的接口 19 13 2事件處理 基本概念 20 13 2事件處理 委托事件處理機制對于每一種要處理的事件 都要定義監(jiān)聽類 監(jiān)聽器 這個監(jiān)聽類應(yīng)實現(xiàn)相應(yīng)的監(jiān)聽器接口 事件源必須注冊事件監(jiān)聽器 以便監(jiān)聽器可以接收特定事件的通知 事件源發(fā)生的事件對象只被傳遞給已經(jīng)注冊的事件監(jiān)聽器 21 13 2事件處理 委托事件處理機制注冊監(jiān)聽器 RegisteringListeners 的方法如下 addActionListener ActionListeneryourListener addMouseListener MouseListeneryourListener addWindowListener WindowListeneryourListener 22 13 2事件處理 委托事件處理機制例如 要響應(yīng)Jbutton的單擊事件 則需要對此類型的事件進行注冊 需要調(diào)用Jbutton的addActionListener 方法 此方法需要一個參數(shù) 這個參數(shù)是實現(xiàn)了ActionListener接口的類對象 ActionListener接口只包含一個方法 即actionPerformed方法 23 13 2事件處理 委托事件處理機制定義一個類 如ButtonHandler類 實現(xiàn)ActionListener接口 并在類中實現(xiàn)接口中定義的actionPerformed方法 24 13 2事件處理 委托事件處理機制使用addActionListener 方法將ButtonHandler類的對象注冊到按鈕上 25 13 2事件處理 委托事件處理機制 26 13 2事件處理 實現(xiàn)監(jiān)聽器接口的方法一般可以通過以下三種方法實現(xiàn)監(jiān)聽器接口 在已有的類中實現(xiàn)接口 單獨定義一個類實現(xiàn)接口 創(chuàng)建內(nèi)部類實現(xiàn)接口 27 13 2事件處理 實現(xiàn)監(jiān)聽器接口的方法在已有的類中實現(xiàn)接口 28 13 2事件處理 實現(xiàn)監(jiān)聽器接口的方法在已有的類中實現(xiàn)接口 29 13 2事件處理 實現(xiàn)監(jiān)聽器接口的方法單獨定義一個類實現(xiàn)接口 30 13 2事件處理 實現(xiàn)監(jiān)聽器接口的方法單獨定義一個類實現(xiàn)接口 31 13 2事件處理 實現(xiàn)監(jiān)聽器接口的方法創(chuàng)建內(nèi)部類實現(xiàn)接口 32 13 2事件處理 處理鼠標(biāo)事件舉例編寫程序檢測鼠標(biāo)的拖動 即按住鼠標(biāo)鍵并同時移動鼠標(biāo)的操作 以及鼠標(biāo)進入和離開窗口的情況 處理過程 因拖動鼠標(biāo)而引發(fā)的MouseEvent事件對象可以由實現(xiàn)了MouseMotionListener接口的類處理 MouseMotionListener接口中聲明了mouseDragged 和mouseMoved 兩個抽象方法 分別用于處理鼠標(biāo)的拖動和移動 33 13 2事件處理 處理鼠標(biāo)事件舉例為了處理其他鼠標(biāo)事件 必須實現(xiàn)MouseListener接口 該接口聲明了mouseEntered mouseExited mousePressed mouseReleased 和mouseClicked 五個抽象方法 34 13 2事件處理 處理鼠標(biāo)事件舉例 35 13 2事件處理 處理鼠標(biāo)事件舉例 36 13 2事件處理 處理鼠標(biāo)事件舉例 37 13 2事件處理 處理鼠標(biāo)事件舉例 38 13 2事件處理 處理鼠標(biāo)事件舉例 39 13 2事件處理 處理鼠標(biāo)事件舉例 40 13 2事件處理 擴充適配器類如果一個類實現(xiàn)一個接口 就需要實現(xiàn)接口中的所有方法 為了方便 Java為那些聲明了多個方法的Listener接口提供了一個對應(yīng)的適配器 Adapter 類 例如 MouseListener對應(yīng)的適配器類為MouseAdapter 在適配器類中實現(xiàn)了相應(yīng)接口中的全部方法 只是方法的內(nèi)容為空 41 13 2事件處理 擴充適配器類這樣 在創(chuàng)建新類時 可以不實現(xiàn)接口 而是只繼承某個適當(dāng)?shù)倪m配器類 并且覆蓋所關(guān)心的事件處理方法 42 13 2事件處理 使用多個GUI組件在使用多個組件時 使用事件實例的getSource 方法確定發(fā)生的事件來自哪個組件 例 編寫具有3個按鈕的窗口 點擊第一個按鈕在文本框中顯示 HelloWorld 點擊第二個按鈕清除文本框中的內(nèi)容 點擊第三個按鈕則關(guān)閉窗口 43 13 2事件處理 使用多個GUI組件 44 13 2事件處理 使用多個GUI組件 45 13 2事件處理 使用多個GUI組件 46 13 2事件處理 使用多個GUI組件 47 13 2事件處理 使用多個GUI組件 48 13 2事件處理 使用多個GUI組件 49 13 3布局管理器 為了使生成的圖形用戶界面具有良好的平臺無關(guān)性 Java語言提供了布局管理器來管理組件在容器中的布局 而不使用直接設(shè)置組件的位置和大小的方式 本節(jié)介紹常用的布局管理器FlowLayout BorderLayout GridLayout GridBagLayout及CardLayout的使用 50 13 3布局管理器 FlowLayoutFlowLayout布局方式是將組件一排一排地依次放置 當(dāng)容器被重新設(shè)置大小后 則布局也會隨之發(fā)生改變 各組件的大小不變 但相對位置會發(fā)生變化 51 13 3布局管理器 FlowLayoutFlowLayout類有三種構(gòu)造方法 publicFlowLayout publicFlowLayout intalign publicFlowLayout intalign inthGap intvGap 52 13 3布局管理器 FlowLayout應(yīng)用舉例 53 13 3布局管理器 FlowLayout應(yīng)用舉例 54 13 3布局管理器 FlowLayout應(yīng)用舉例 55 13 3布局管理器 BorderLayoutBorderLayout提供了更復(fù)雜的布局控制方法 它包括5個區(qū)域 North South East West和Center 當(dāng)容器的尺寸發(fā)生變化時 各組件的相對位置不變 但中間部分組件的尺寸會發(fā)生變化 南北組件的高度不變 東西組件的寬度不變 56 13 3布局管理器 BorderLayoutBorderLayout類有以下兩個造方法 publicBorderLayout publicBorderLayout inthgap intvgap 57 13 3布局管理器 BorderLayout如果容器使用了BorderLayout布局方式 則用add 方法往容器中添加組件時必須指明添加的位置 例如 add BorderLayout SOUTH newJButton West add BorderLayout NORTH newJButton North 58 13 3布局管理器 BorderLayout舉例 59 13 3布局管理器 GridLayoutGridLayout布局方式可以使容器中的各組件呈網(wǎng)格狀分布 將容器劃分為很多行 row 和列 column 初始行和列都從0開始 容器中各組件的高度和寬度相同 當(dāng)容器的尺寸發(fā)生變化時 各組件的相對位置不變 但各自的尺寸會發(fā)生變化 60 13 3布局管理器 GridLayoutGridLayout類的構(gòu)造方法有 publicGridLayout introws intcolumns publicGridLayout introws intcolumns inthGap intvGap 61 13 3布局管理器 GridLayout舉例 62 13 3布局管理器 GridLayout舉例 63 13 3布局管理器 GridBagLayoutGridBagLayout將組件放置在網(wǎng)格中 這一點類似于GridLayout 所不同的是 GridBagLayout不僅能設(shè)置組件擺放的位置 還能設(shè)置該組件占多少行 多少列 并可以按任意順序放置 是一種非常靈活的布局管理器 64 13 3布局管理器 GridBagLayoutGridBagConstrains對象描述組件在GridBagLayout中的放置方式 65 13 3布局管理器 GridBagLayout舉例 66 13 3布局管理器 GridBagLayout舉例 67 13 3布局管理器 GridBagLayout舉例 68 13 3布局管理器 GridBagLayout舉例 69 13 3布局管理器 GridBagLayout舉例 70 13 3布局管理器 GridBagLayout舉例 71 13 3布局管理器 CardLayoutCardLayout布局方式可以幫助用戶處理兩個或更多的組件共享同一顯示空間 共享空間的組件之間的關(guān)系就像一摞牌一樣 它們摞在一起 只有最上面的組件是可見的 72 13 3布局管理器 CardLayoutCardLayout類有兩種構(gòu)造方法 publicCardLayout 組件距容器左右邊界和上下邊界的距離為缺省值0個象素 publicCardLayout inthorizontalGap intverticalGap 組件距容器左右邊界和上下邊界的距離為指定值 73 13 3布局管理器 CardLayoutCardLayout可以象換牌一樣處理這些共享空間的組件 publicvoidshow Containerparent Stringname publicvoidnext Containerparent publicvoidprevious Containerparent publicvoidfirst Containerparent publicvoidlast Containerparent 74 13 3布局管理器 CardLayout舉例 75 13 3布局管理器 CardLayout舉例 76 13 3布局管理器 CardLayout舉例 77 13 3布局管理器 CardLayout舉例 78 13 3布局管理器 CardLayout舉例 79 13 3布局管理器 CardLayout舉例 80 13 4Swing組件的使用 SwingConstant接口SwingConstant接口中定義了很多常量用來表示位置 朝向信息 這些常量都是staticint型的 Swing組件通過實現(xiàn)這個接口就可以使用它們來確定位置了 81 13 4Swing組件的使用 SwingConstant接口 82 13 4Swing組件的使用 標(biāo)簽類 JLabelJLabel類提供的常用構(gòu)造方法 JLabel 創(chuàng)建空標(biāo)簽JLabel Stringtext 創(chuàng)建帶有文本的標(biāo)簽JLabel StringtextinthorizontalAlignment 創(chuàng)建帶有文本的標(biāo)簽 并指定其水平排列方式JLabel Iconimage 創(chuàng)建帶有圖標(biāo)的標(biāo)簽JLabel Iconimage inthorizontalAlignment 創(chuàng)建帶有圖標(biāo)的標(biāo)簽 并指定其水平排列方式 83 13 4Swing組件的使用 菜單Swing下拉菜單至少由3個類的實例組成 JMenuBar 菜單欄 JMenu 菜單 JMenuItem 菜單項 84 13 4Swing組件的使用 菜單菜單欄 菜單及菜單項的示例 85 13 4Swing組件的使用 菜單將前面的SwingFrameAndComponent類改寫為SwingFrameWithMenus類 用下拉菜單替代按鈕來顯示和清除消息及關(guān)閉窗體 86 13 4Swing組件的使用 菜單舉例 SwingFrameWithMenus類定義 87 13 4Swing組件的使用 菜單舉例 SwingFrameWithMenus類定義 88 13 4Swing組件的使用 菜單舉例 SwingFrameWithMenus類定義 89 13 4Swing組件的使用 菜單舉例 SwingFrameWithMenus類定義 90 13 4Swing組件的使用 工具欄 JToolBar 91 13 4Swing組件的使用 按鈕類按鈕類的繼承層次AbstractButton抽象類是眾多按鈕類的基類 子類有JButton JToggleButton JMenuItem JToggleButton表示有兩個選擇狀態(tài)的按鈕 它有兩個子類JCheckBox JRadioButton 分別用來實現(xiàn)多選按鈕和單選按鈕 JMenuItem有三個子類JCheckBoxMenuItem JRadioButtonMenuItem JMenu 用來在菜單中加入多選按鈕 單選按鈕和一般的菜單項 92 13 4Swing組件的使用 按鈕類 AbstractButton 93 13 4Swing組件的使用 按鈕類 AbstractButton 94 13 4Swing組件的使用 按鈕類 JCheckBox JRadioButtonJCheckBox JRadioButton是兩種狀態(tài)按鈕 可為用戶提供是 否或真 假選擇 用戶可以從成組使用的復(fù)選框中選擇一項或多項 但在成組使用的單選按鈕中一次只能選擇一個單選按鈕 95 13 4Swing組件的使用 按鈕類 JCheckBox JRadioButton創(chuàng)建按鈕 JCheckBox及JRadioButton的常用構(gòu)造方法JCheckBox Stringtext booleanselected JRadioButton Stringtext booleanselected 96 13 4Swing組件的使用 按鈕類 JCheckBox JRadioButton使用ButtonGroup對按鈕分組ButtonGroup的典型用途是包含單選按鈕的邏輯組 通過使用ButtonGroup的add方法 可將按鈕添加到組中 97 13 4Swing組件的使用 按鈕類 JCheckBox JRadioButton常用事件在單擊組件時發(fā)生動作事件 當(dāng)選項發(fā)生改變時發(fā)生選項事件 處理選項事件的類必須實現(xiàn)ItemListener接口 ItemListener接口中只有一個方法 VoiditemStateChanged ItemEvente 98 13 4Swing組件的使用 單選按鈕使用舉例 99 13 4Swing組件的使用 單選按鈕使用舉例 100 13 4Swing組件的使用 單選按鈕使用舉例 101 13 4Swing組件的使用 單選按鈕使用舉例 102 13 4Swing組件的使用 復(fù)選框使用舉例 103 13 4Swing組件的使用 復(fù)選框使用舉例 104 13 4Swing組件的使用 復(fù)選框使用舉例 105 13 4Swing組件的使用 復(fù)選框使用舉例 106 13 4Swing組件的使用 組合框 下拉列表框組合框JComboBox與JRadioButton類一樣 只允許用戶在一組可能的選項中選擇一項 組合框有兩種不同的格式 默認狀態(tài)是不可編輯的模式 包括一個按鈕和一個下拉列表 另一種是可編輯的模式 多了一個文本區(qū)域 用戶可以在此文本區(qū)域內(nèi)填入列表中不包括的內(nèi)容 107 13 4Swing組件的使用 組合框 下拉列表框創(chuàng)建一個JComboBox對象 String comboBoxItem Java C C VB Lisp Prolog JComboBoxcomboBox newJComboBox comboBoxItem 108 13 4Swing組件的使用 組合框 下拉列表框每次點擊JComboBox對象 選中不同于當(dāng)前選中項時 就會產(chǎn)生項事件 當(dāng)新選擇的項與已選擇的項相同時 不會產(chǎn)生項事件 109 13 4Swing組件的使用 組合框 下拉列表框通過調(diào)用JComboBox的getSelectedItem方法來獲得當(dāng)前選中項 方法的返回類型是Object 必須將它轉(zhuǎn)換為正確的類型 110 13 4Swing組件的使用 組合框 下拉列表框例如 項是String對象 則使用下面的語句 textField setText comboBox getSelectedItem toString 也可以調(diào)用getSelectedIndex方法來獲得已選中項的位置 列表中第一項的位置是0 111 13 4Swing組件的使用 組合框 下拉列表框舉例 112 13 4Swing組件的使用 組合框 下拉列表框舉例 113 13 4Swing組件的使用 組合框 下拉列表框舉例 114 13 4Swing組件的使用 文本Swing提供六種文本組件 還有一系列支持的類和接口 115 13 4Swing組件的使用 文本文本組件可分為三類 單行文本 包括JTextField JPasswordField JFormattedTextField 多行單一風(fēng)格文本 JTextArea 它可以顯示和編輯多行文本 通常用來讓用戶輸入任意長度的無格式文本或顯示無格式的幫助信息 多行風(fēng)格化文本 包括JEditorPane JTextPane 可以顯示和編輯多行多種式樣的文本 甚至可以嵌入圖像或其他組件 116 13 4Swing組件的使用 文本框JTextFieldJTextField的構(gòu)造方法如下 JTextField 創(chuàng)建空的文本框 JTextField Stringtext 創(chuàng)建具有指定文本的文本框 JTextField intcolumns 創(chuàng)建具有指定列的文本框 JTextField Stringtext intcolumns 創(chuàng)建具有指定文本 指定列的文本框 117 13 4Swing組件的使用 文本框JTextFieldJTextField的常用方法 StringgetText 獲取文本框中的當(dāng)前文本 voidsetTextField Stringt 設(shè)置文本框中的當(dāng)前文本 intgetLength 返回當(dāng)前文本中的字符個數(shù) StringgetText intoffs intlen 返回給定字段所包含的文本 voidselectAll 選擇文本框中所有文本 118 13 4Swing組件的使用 文本框JTextFieldJTextField的常用方法 intgetSelectionStart 獲取文本框中選定的文本起始點 voidsetSelectionStart intselectionStart 設(shè)置文本框中選定的文本起始點 intgetSelectionEnd 獲取文本框中選定文本結(jié)束位置的下一個位置 voidsetSelectionEnd intselectionEnd 設(shè)置文本框中選定文本結(jié)束位置的下一個位置 119 13 4Swing組件的使用 文本框JTextFieldJTextField的常用方法 voidselect intselectionStart intselectionEnd 選擇文本框中的一部分文本 selectionStart指定被選擇文本的開始位置 selectionEnd指定被選擇文本結(jié)束位置的下一個位置 voidsetEditable booleanb 設(shè)置是否能夠編輯文本框中的內(nèi)容 參數(shù)b的值為true表示能夠編輯 否則不能編輯 120 13 4Swing組件的使用 密碼框JPasswordField密碼框JPasswordField繼承自JTextField 是一種特殊的文本框 常用方法 char getPassword 返回包含在密碼框內(nèi)的文本 voidsetEchoChar charc 設(shè)置密碼框的回顯字符 參數(shù)c是用于屏蔽密碼框內(nèi)容的密碼字符 缺省情況下為星號 例如 如果希望在密碼框中顯示點號 則調(diào)用setEchoChar 方法 121 13 4Swing組件的使用 二維表Java使用JTable類對象顯示和編輯二維表 JTable并不存儲數(shù)據(jù) 只是給出數(shù)據(jù)的視圖 帶有滾動框的典型表 122 13 4Swing組件的使用 二維表有兩種方式來創(chuàng)建JTable類對象 一種方式是直接使用JTable類的構(gòu)造方法 另一種方式是定義自己的TableMode類作為AbstractTableMode類的子類 123 13 4Swing組件的使用 二維表使用JTable類的構(gòu)造方法創(chuàng)建二維表的步驟 1 在String數(shù)組或Vector中聲明列名StringcolumnName 書號 書名 作者 價格 或VectorcolumnName 書號 書名 作者 價格 124 13 4Swing組件的使用 二維表使用JTable類的構(gòu)造方法創(chuàng)建二維表的步驟 2 在二維Object數(shù)組或Vector中初始化并存儲數(shù)據(jù)Object data 9787807310907 001 笑傲江湖 金庸 36 0 9787807310907 002 笑傲江湖 金庸 36 0 7101003044 001 史記 司馬遷 50 0 9787508619439 001 誰動了我的奶酪 斯賓塞 約翰遜 27 0 7020024750 001 圍城 錢鐘書 38 0 9787544253956 001 富爸爸窮爸爸 羅伯特 T 清崎 26 0 125 13 4Swing組件的使用 二維表使用JTable類的構(gòu)造方法創(chuàng)建二維表的步驟 3 用數(shù)據(jù)和列名生成JTable類對象 有兩個JTable方法可以直接接收數(shù)據(jù) JTable Object rowData Object columnNames JTable VectorrowData VectorcolumnNames 126 13 4Swing組件的使用 二維表使用JTable類的構(gòu)造方法創(chuàng)建二維表的步驟 4 將表放在滾動框中 JScrollPane類的構(gòu)造方法帶有一個參數(shù) 此參數(shù)指向數(shù)據(jù)表對象 構(gòu)造方法將創(chuàng)建一個滾動框作為此數(shù)據(jù)表的容器 并將數(shù)據(jù)表自動加到此容器上 創(chuàng)建滾動框并作為表容器的典型代碼 JScrollPanescrollPane newJScrollPane table 127 13 4Swing組件的使用 二維表舉例 128 13 4Swing組件的使用 二維表舉例 129 13 4Swing組件的使用 二維表在數(shù)據(jù)項上單擊鼠標(biāo)就可選中一行 按住Shift鍵并單擊鼠標(biāo) 或者在行上拖動鼠標(biāo)就可選中連續(xù)的多行 按住Ctrl鍵并單擊鼠標(biāo)就可選中不連續(xù)的多行 在數(shù)據(jù)項上雙擊鼠標(biāo)就可以對數(shù)據(jù)項進行修改了 130 13 4Swing組件的使用 二維表可以調(diào)用JTable setSelectionMode方法來設(shè)置選擇模式 此方法只有一個參數(shù) 此參數(shù)的值只能是javax swing ListSelectionModel中所定義的以下三個常量之一 MULTIPLE INTERVAL SELECTIONSINGLE INTERVAL SELECTIONSINGLE SELECTION 131 13 4Swing組件的使用 二維表如只允許選擇單行 則可使用下面的代碼進行設(shè)置 table setSelectionMode ListSelectionModel SINGLE SELECTION 132 13 4Swing組件的使用 二維表缺省的情況下單擊鼠標(biāo)時選擇行 設(shè)置單擊鼠標(biāo)時選擇列 table setColumnSelectionAllowed true table setRowSelectionAllowed false 設(shè)置單擊鼠標(biāo)時選擇數(shù)據(jù)項 單元 table setCellSelectionEnabled true 133 13 4Swing組件的使用 二維表使用構(gòu)造方法來構(gòu)造數(shù)據(jù)表的優(yōu)點是易于使用 但也存在以下方面的缺點 數(shù)據(jù)表的每個單元自動為可編輯 對所有的數(shù)據(jù)類型都作為字符串對待 要求將表中的所有數(shù)據(jù)放在數(shù)組或向量中 這對于某些數(shù)據(jù)并不合適 134 13 4Swing組件的使用 二維表要突破上述限制 就需要定義AbstractTableModel類的子類 135 13 4Swing組件的使用 二維表 136 13 4Swing組件的使用 二維表有了MyTableMode類 數(shù)據(jù)表的創(chuàng)建就變得很簡單了 JTabletable newJTable newMyTableModel 137 13 4Swing組件的使用 二維表舉例 138 13 5本章小結(jié) 本章重點介紹了Swing的結(jié)構(gòu)層次 布局管理 以及如何為其編寫事件處理程序 學(xué)習(xí)本章的重點在于掌握圖形用戶界面程序的編程方法 思路 以及常用的GUI組件的使用方法 139 Thanks- 1.請仔細閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點此認領(lǐng)!既往收益都歸您。
下載文檔到電腦,查找使用更方便
14.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該PPT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計者僅對作品中獨創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 圖形 用戶界面 事件 處理
鏈接地址:http://m.appdesigncorp.com/p-8754971.html