java可输入的gui表格_Java中GUI—菜單表格和多文檔界面

本文详细介绍了Java中的高级图形用户界面,包括菜单、表格和多文档界面。讨论了菜单的创建,如常规菜单窗口的结构、组件和构建步骤,以及弹出式菜单的实现。同时,提到了菜单项的快捷键设置和事件处理,但表格和多文档界面的内容将另作讲解。
摘要由CSDN通过智能技术生成

Java中的高級圖形用戶界面就是菜單、表格、多文檔界面

——菜單

菜單窗口分為兩類:常規菜單窗口和彈出式菜單窗口

常規菜單窗口的試圖如下:

4029420e29a8ce6d9d28fcd07701df61.png

常規菜單窗口有三部分組成:

9d4222350f154a9eb07374ecf3de349c.png

9a1bfaba3b71756cfb4c3eeaaa9dce62.png

1、所以常規菜單由: 菜單欄 (JMenuBar) 、下拉式菜單(JMenu) 、 和 菜單項 組成;

2、菜單項又分成

命令式菜單項(JMenuItem) 這是最常用的一個菜單項

復選式菜單項(JCheckBoxMenuItem)

單選式菜單項(JRadioButtonMenuItem)

3、構建常規菜單窗口的一般步驟是:

創建容器——在容器中添加一個菜單欄——在菜單欄中添加數個下拉式菜單——在每個下拉式菜單中添加數個菜單項

所以可以預見這些菜單欄和下拉式菜單實際上就是一種容器,到最后我們可以知道實際上我們也可以將其他的下拉式菜單作為“菜單項”,構建多級菜單窗口

4、我們把菜單系統的結構圖介紹一下

7733474a2c73638831dc2742b0670289.png

6c69228fe8fe3d45aa21c4520f4b56e0.png

98d133aa0f90ead25c13b1368c640a4c.png

e22e3059b4f09e795b3b35143ed393c5.png

0cf74356ccad111a6118ffa7b061e497.png

6、分析:

①創建菜單欄——public JMenuBar() ;

②在頂層容器中設置菜單欄

像JFrame、JDialog、JApplet 頂層容器中都有設置菜單欄的方法

public void setJMenuBar(JMenuBar menubar) ;

這樣一來就相當於在當前的窗口中添加了菜單欄

③在菜單欄中添加下拉式菜單

JMenuBar類中有成員方法:

public JMenu add(JMenu menu) ;

④在下拉式菜單中添加其他的下拉式菜單或者菜單項

JMenu類中有成員方法:

public JMenuItem add(JMenuItem menuItem) ;

由前面的菜單系統圖可以知道由於JMenuBar是JMenuItem的

子類,所以我們不僅能夠將命令式菜單項(或其他不常用的菜單項)

作為菜單項,還能夠將其他的下拉式菜單作為“菜單項”;這樣一來就能

夠創建多級菜單但我們將下拉式菜單作為“菜單項”時,在對應的項中

就會出現小的三角箭頭:

bb08495dab8a3867246906f11130f8e1.png

⑤JMenuItem類的構造方法:

public JMenuItem(String text) ;

public JMenuItem(Icon icon) ;

public JMenuItem(String text , Icon icon) ;

public JMenuItem(String text , Icon icon , int mnemonic) ;

其中參數mnemonic指定了創建的菜單項的助記符,助記符都是

字符型的,但是這個構造方法中的參數是int型的,即需要知道,字符的

Unicode編碼,這一點問題沒有,因為int和char能夠進行隱含的轉換

所以在使用這個構造方法時,可以直接用形如‘a’這樣的字符作為

mnemonic

⑥助記符設置

菜單項和下拉式菜單都可以擁有助記符,如果菜單項或者下拉式菜單中有

設定的助記符中的字符的話,在菜單項或下拉式菜單中的那個字符的下面

就會自動的添加一條下划線;一旦我們為某個菜單項或者下拉式菜單設定了

助記符,那么我們就能夠通過使用“Alt 鍵+ 助記符鍵”使下拉式菜單展開

或者執行菜單項所對應的命令;

菜單項和下拉式菜單都有設置助記符的方法:

public void setMnemonic(char mnemonic);

public void setMnemonic(int mnemonic) ;

注意:有些操作系統不支持助記符功能,還有一個問題是,在給

小應用程序添加助記符時,可能會與瀏覽器本身的助記符發生沖突,

因此,要謹慎一些

⑦快捷鍵的設置

如果需要可以給菜單項設置快捷鍵(雖然JMenu繼承自JMenuItem,

但是JMenu對象是不能夠設置快捷鍵的,這是有道理的,因為下拉菜

單並不是執行什么命令)在JMenuItem的成員方法中有專門用於設置

快捷鍵的方法:

public void setAccelerator(KeyStroke keyStroke) ;

參數keyStroke所定義的按鍵或者按鍵組合就是該菜單項的快捷鍵

快捷鍵由javax.swing.KeyStroke類的實例對象定義,但是我們可以利用

這個類中的靜態方法 :

public static KeyStroke getKeyStroke(char key) ;

public static KeyStroke getKeyStroke(String s) ;

來獲得KeyStroke對象,非常的簡便,其中參數的格式非常的重要

格式:

①方法一種參數是單個char字母 , 但是這個字母必須是大寫字母

這個大寫字母就作為才菜單項的快捷鍵

②方法二中參數是字符串s, 字符串 s 必須由三部分組成

“修飾詞”+  空格 + “大寫字母” ;

比如:“ctrl”+“ ”+“S” ;(或者是“ctrl   ” + “S”) ;

這樣一來就將ctrl+S作為了該菜單項的快捷鍵了;

現在再看看上面的實例程序就會發現,有錯誤,應該將mC[][]中的小寫

字母改成大寫字母,否則是不會創建快捷鍵的;

但是助記符是不區分大小寫的,也就說大寫小寫都一樣

當我們將實例中的程序改正后就有這樣的運行結果:

3da6104e9a090f06af9c605dcdd4e184.png

⑧實現菜單項的命令或操作事件處理

與相應的按鈕事件處理一樣,我們從系統圖中可以看到

菜單項是javax.swing.AbstractButton的子類,也就說,實際上

菜單項就是按鈕,那么事件處理機制就和JButton是一樣的

⑨菜單分隔條

在菜單項之間我們可以加上一個菜單分隔條,為的是能夠更加清晰的區分

菜單項,菜單分隔條實際上就是下圖中open和save之間的一條線

2064535efee7ea9a48a938f4685cd9cb.png

在JMenu中有方法用來為當期的下拉式菜單下屬的各個菜單項之間

添加菜單分隔條,而不是在JMenuItem中;

public void insertSeparator(int index) ;

index的值指定了分隔條添加的位置,從0開始

——彈出式菜單

①彈出式菜單類是javax.swing.JPopupMenu類,所謂的彈出式菜單

就是我們在許多軟件中單擊右鍵是彈出的菜單,比如在桌面上單擊右鍵

出現的菜單;跟常規菜單不同的是,彈出式菜單並需要在容器中設置什么

菜單欄,我們只需要創建一個javax.swing.JPopupMenu類的實例對象

之后要做的是,當我們在某個容器中點擊鼠標右鍵時,

調用javax.swing.JPopupMenu的成員方法show(參數);就能夠將

菜單彈出來這就行了

②所以創建彈出式菜單的過程為:

創建JPopupMenu實例對象——向實例對象中添加菜單項JMenuItem

或者下拉式菜單JMenu——在容器中添加鼠標監聽器——當在容器中單擊

右鍵時,調用實例對象的show()方法,將菜單顯示出來

③下面通過一個實例來顯示這個過程

程序的最終結果為:

456bcbdbc054373a876bd0dae04d4161.png

3feaf41ccc5f17179f7a2bcdb49f88ab.png

9f62e97a118fbc767c245e7025d8be62.png

④分析:

1、JPopupMenu成員方法:

public JMenuItem add(JMenuItem menuItem) ;

所以可以將下拉式菜單作為“菜單項”

2、一般不為彈出式菜單項添加快捷鍵,因為如果添加了快捷鍵的話,只有當

菜單項展開時,才能夠使用快捷鍵,這已經失去了意義

——表格JTable和多文檔界面的內容以后再講

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值