日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > AWT菜單:

AWT菜單:

來源:程序員人生   發布時間:2016-11-14 10:07:32 閱讀次數:2863次

AWT菜單:
與創建GUI界面的方式類似,創建AWT菜單就是將菜單條、菜單項和菜單組合在1起。
(1)AWT中的菜單由以下幾個類組合而成:
MenuBar 菜單條,菜單的容器
Menu 菜單組件,菜單項的容器
PopupMenu 上下文菜單組件(右鍵菜單組件)
MenuItem 菜單項組件
CheckboxMenuItem 復選框菜單組件
MenuShortcut 菜單快捷鍵組件

(2)MenuBar和Menu都實現了菜單容器接口,所以MenuBar可用于艷服Menu,而Menu可用于艷服MenuItem(包括Menu和CheckboxMenuItem兩個子類對象),Meun還有1個子類:PopupMenu,代表上下文菜單,上下文菜單無需使用MenuBar艷服。
(3)Menu/MenuItem的構造器都可以接受1個字符串參數,該字符串作為其對應菜單、菜單項上的標簽文本。除此以外,MenuItem還可以接受1個MenuShortcut對象,該對象用于指定該菜單的快捷鍵。MenuShortcut類使用虛擬鍵代碼(而不是字符)來創建快捷鍵。
例如:Ctrl+A(通常都使用Ctrl鍵作為快捷鍵的輔助鍵)

快捷方式通過以下代碼創建
MenuShortcut ms=new MenuShortcut(KeyEvent.VK_A)
如果還需要Shift鍵的輔助,則可使用以下代碼:
MenuShortcut ms=new MenuShortcut(KeyEvent.VK_A,true)
(3)有時候程序還希望對菜單進行分組,將功能類似的菜單分成1組,此時需要使用菜單分隔符。AWT中添加菜單分隔符有以下兩種方法
a.調用Menu對象的addSeparator()方法來添加菜單分隔線。
b.使用添加new MenuItem(“-“)的方式添加菜單分隔線。

(4)創建了MenuItem Menu MenuBar 對象以后,調用Menu的add()方法將多個MenuItem組合成菜單(也能夠將另外一個Menu菜單組合進來,從而構成2級菜單),在調用MenuBar的add()方法,將多個Menu組合成菜單條,最后調用Frame對象的setMenuBar()方法為該窗口添加菜單條。

實例程序:

package com.zou; import java.awt.CheckboxMenuItem; import java.awt.Frame; import java.awt.Menu; import java.awt.MenuBar; import java.awt.MenuItem; import java.awt.MenuShortcut; import java.awt.TextArea; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.awt.event.WindowListener; public class SimpleMenu{ Frame f=new Frame("菜單測試"); MenuBar mb=new MenuBar(); Menu file =new Menu("文件"); Menu edit =new Menu("編輯"); MenuItem newItem =new MenuItem("新建"); MenuItem saveItem=new MenuItem("保存"); //創建exitItem菜單項,指定使用Ctrl+x 快捷鍵 MenuItem exitItem=new MenuItem("退出", new MenuShortcut(KeyEvent.VK_X)); CheckboxMenuItem autoWrap=new CheckboxMenuItem("自動換行"); MenuItem copyItem=new MenuItem("復制"); MenuItem pasteItem=new MenuItem("粘貼"); Menu format=new Menu("格式"); //創建commonItem菜單項,指定使用CtrShift+/ 快捷鍵 MenuItem commonItem=new MenuItem("注釋", new MenuShortcut(KeyEvent.VK_SLASH,true)); MenuItem cancelItem=new MenuItem("取消注釋"); TextArea ta=new TextArea(8, 60); public void init(){ //以lambda表達式創建菜單事項監聽器 ActionListener menuListener=e -> { String cmd =e.getActionCommand(); ta.append("單擊"+cmd+"菜單"+"\n"); if(cmd.equals("退出")){ System.exit(0); } }; //為commonItem菜單項添加事件監聽器 commonItem.addActionListener(menuListener); exitItem.addActionListener(menuListener); //為file菜單添加菜單項 file.add(newItem); file.add(saveItem); file.add(exitItem); //為eidt菜單添加菜單項 edit.add(autoWrap); //使用addSeparator方法添加菜單分割線 edit.addSeparator(); edit.add(copyItem); edit.add(pasteItem); //為format菜單添加菜單項 format.add(commonItem); format.add(cancelItem); //使用new MenuItem("-")添加菜單分割線 edit.add(new MenuItem("-")); //將format菜單組合到edit菜單中,從而構成2級菜單 edit.add(format); //將file edit 菜單加到mb菜單條中 mb.add(edit); mb.add(file); //為f窗口設置菜單條 f.setMenuBar(mb); //以匿名內部類的情勢創建監聽器對象 f.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); f.add(ta); f.pack(); f.setVisible(true); } public static void main(String[] args){ new SimpleMenu().init(); } }

AWT菜單組件不能創建圖標菜單,如果希望創建帶圖標的菜單,則應當使用Swing的菜單組件:JMenuBar,JMenu JMenuItem JpopupMenu Swing的菜單組件和AWT菜單組件基本類似。

——————————————————————————————————————————————————————————————————————–
右鍵菜單:
(1)右鍵菜單使用PopupMenu對象表示,創建右鍵菜單步驟以下:
創建PopupMenu的實例
創建多個menuItem實例,順次將這些實例加入PopupMenu中
將PopupMenu加入到目標組件中
為需要出現上下文菜單的組件編寫鼠標監聽器,當用戶釋放鼠標右鍵時彈出右鍵菜單。

示例程序:

————————————————————————————————————————————————————————
在AWT中繪圖:
畫圖的實現原理:
(1)在Component類里提供了以下和繪圖有關的方法:
paint(Graphics g)繪制組件的外觀
update(Graphics g) 調用paint()方法,刷新組件外觀
repaint();調用update()方法,刷新組件外觀。
上面3個方法的調用關系為:repaint()調用update()方法,update()方法調用paint()方法。

(2)Container類里的update()方法先以組件的背風景填充全部組件區域,然后調用paint()方法重畫組件。
——————————————————————————————————————————————————————
使用Graphics類
(1)Graphics是1個抽象的畫筆對象,Graphics可以在組件上繪制豐富多彩的幾何圖形和位圖,其提供的方法以下
drawLine() 繪制直線
drawString()繪制字符串
drawRect()繪制矩形
drawRoundRect()繪制圓角矩形
drawOval()繪制橢圓形狀
drawPolygon()繪制多邊形邊框
drawArc()繪制1段圓弧
drawPolyline()繪制折線

fillRect()填充矩形
fillRoundRect()填充圓角矩形
fillOval()填充橢圓形狀
fillPolygon()填充多邊形
fillArc()填充圓弧兩個端點到中心連線所包圍的區域

drawImage()繪制位圖

除此以外,Graphics還提供了setColor()和setFont()兩個方法來設置畫筆的色彩和字體。

(2)AWT專門提供了1個Canvas類作為繪圖的畫布,程序可以通過創建Canvas的子類,并重寫它的paint()方法來實現繪圖。
示例:簡單的繪圖程序

import java.awt.BorderLayout; import java.awt.Button; import java.awt.Canvas; import java.awt.Color; import java.awt.Dimension; import java.awt.Frame; import java.awt.Graphics; import java.awt.Panel; import java.util.Random; public class SimpleDraw{ private final String RECT_SHAPE="rect"; private final String OVAL_SHAPE="oval"; private Frame f=new Frame("簡單繪圖"); private Button rect=new Button("繪制矩形"); private Button oval=new Button("繪制圓形"); private MyCanvas drawArea =new MyCanvas(); //用來保存需要繪制甚么圖形的變量 private String shape=""; public void init() { Panel p=new Panel(); rect.addActionListener(e -> { //設置shape變量為RECT_SHAPE shape=RECT_SHAPE; //重畫MyCanvas對象,即調用它的repait()方法 drawArea.repaint(); } ); oval.addActionListener(e -> { //設置shape變量為OVAL_SHAPE shape=OVAL_SHAPE; //重畫MyCanvas對象,即調用它的repait()方法 drawArea.repaint(); } ); p.add(rect); p.add(oval); drawArea.setPreferredSize(new Dimension(250,180)); f.add(drawArea); f.add(p, BorderLayout.SOUTH); f.pack(); f.setVisible(true); } public static void main(String[] args){ new SimpleDraw().init(); } class MyCanvas extends Canvas{ //重寫Canvas的paint()方法,實現繪畫 public void paint(Graphics g){ Random rand=new Random(); if(shape.equals(RECT_SHAPE)){ //設置畫筆色彩 g.setColor(new Color(220, 100, 80)); //隨機畫1個矩形塊 g.drawRect(rand.nextInt(200), rand.nextInt(120), 40, 60); } if(shape.equals(OVAL_SHAPE)){ //設置畫筆色彩 g.setColor(new Color(220, 100, 80)); g.fillOval(rand.nextInt(200), rand.nextInt(120), 50, 40); } } } }

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 91精品国产一区二区三区香蕉 | 国产欧美在线 | 天堂电影在线 | 欧美视频一二三区 | 日韩精品免费看 | 国产精品久久久久久a | 亚洲免费视频网站 | 91嫩草影院在线观看 | 欧美三级三级三级爽爽爽 | 日韩一区二区在线看 | 日韩欧美一区二区三区 | 亚洲一区二区三区四区不卡 | 日本中文字幕电影 | 色综合天天综合网国产成人网 | 色噜噜一区二区 | 亚洲国产欧美日韩 | www.日| 一区在线免费 | 国产午夜精品福利 | 黄色带视频 | 2015成人永久免费视频 | 日韩美女一区 | 激情欧美一区 | 成人性视频在线 | 久久久久久网站 | 一级片在线放映 | 国产成人久久 | 视频在线二区 | 久久久久成人精品 | 成人免费视频一区二区 | 国产特级毛片aaaaaaa高清 | 久久精品三级 | 国产成人精品免费视频大全 | 五月婷婷在线视频 | 成年国产 | 污网站在线 | 国产69久久精品成人看 | 亚洲专区久久 | 欧美不卡一区二区 | 日韩中文字幕在线播放 | 精品久久久久久久久久久 |