1. 程式人生 > >JavaGUI——swing元件基礎(八)選單欄/選單/子選單元件JMenuBar/JMenu/JMenuItem

JavaGUI——swing元件基礎(八)選單欄/選單/子選單元件JMenuBar/JMenu/JMenuItem

介紹這三個元件:

選單欄元件JMenuBar:該元件可以新增選單,新增的選單會排成一行。

選單欄JMenu:可以顯示的一個個的選單,該元件可以新增子選單,也可以新增選單,新增的選單會排成一列。

子選單JMnuItem:可以新增到選單中。

其實這個三個元件還是有點繞人的,但是大家做一遍就理解了,光看不容易懂。


如何建立元件:

JMenuBar name=new JMenuBar();    //建立選單欄
JMenu name=new JMenu("");     //建立選單
JMenuItem name=new JMenuItem("");    //建立子選單

程式碼實現:

import java.awt.*;
import javax.swing.*;
public class Swing_JMenu extends JFrame{

	//定義元件
	JMenuBar jmb;	//定義選單欄
	JMenu jm1,jm2,jm3,jm4,jm5;	//定義選單
	JMenu jm6,jm7,jm8,jm9;		//定義選單中的選單
	JMenuItem jmi1,jmi2,jmi3,jmi4,jmi5;		//定義子選單
	public static void main(String[] args) {
		Swing_JMenu a=new Swing_JMenu();

	}
	public Swing_JMenu()
	{
		//建立元件
		jmb=new JMenuBar();		//建立選單欄
		jm1=new JMenu("檔案");	//建立選單
		jm2=new JMenu("編輯");
		jm3=new JMenu("資源");
		jm4=new JMenu("視窗");
		jm5=new JMenu("幫助");
		jm6=new JMenu("新建");
		jm7=new JMenu("開啟");
		jm8=new JMenu("儲存");
		jm9=new JMenu("匯入");
		jmi1=new JMenuItem("文件");	//建立子選單
		jmi2=new JMenuItem("工程");
		jmi3=new JMenuItem("包");
		jmi4=new JMenuItem("類");
		jmi5=new JMenuItem("介面");
		
		//設定佈局管理器
		
		//新增元件
		jm6.add(jmi1);	//把子選單新增到選單中
		jm6.add(jmi2);
		jm6.add(jmi3);
		jm6.add(jmi4);
		jm6.add(jmi5);
		
		jm1.add(jm6);	//把選單新增到選單中
		jm1.add(jm7);
		jm1.add(jm8);
		jm1.add(jm9);
		
		jmb.add(jm1);	//把選單新增到選單欄中
		jmb.add(jm2);
		jmb.add(jm3);
		jmb.add(jm4);
		jmb.add(jm5);
		
		this.add(jmb,BorderLayout.NORTH);	//把選單欄新增到框架北部
		
		//設定介面屬性
		this.setTitle("選單欄案例");		//設定介面標題
		this.setSize(300, 250);				//設定介面畫素
		this.setLocation(200, 200);			//設定介面初始位置
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);	//設定虛擬機器和介面一同關閉
		this.setVisible(true);				//設定介面視覺化
	}
}

常用方法:

setMnemonic('快捷鍵') //設定一個快捷鍵,按住alt+快捷鍵可以快捷點選

歡迎各位在評論區留言探討~~

相關推薦

JavaGUI——swing元件基礎選單/選單/選單元件JMenuBar/JMenu/JMenuItem

介紹這三個元件:選單欄元件JMenuBar:該元件可以新增選單,新增的選單會排成一行。選單欄JMenu:可以顯示的一個個的選單,該元件可以新增子選單,也可以新增選單,新增的選單會排成一列。子選單JMnuItem:可以新增到選單中。其實這個三個元件還是有點繞人的,但是大家做一遍

JavaGUI——swing元件基礎多行文字框元件JTextArea

為什麼要用多行文字框元件?文字框JTextField是單行輸入,而多行文字框(JTextArea)可以實現多行輸入。實戰目標圖:介面分析:看到上部佔了大部分空間,決定使用邊界佈局。下部的最下部很像邊界佈局的SOUTH部分,在這部分中有兩種元件,一種按鈕元件JButton,一種

C++基礎

目標 調用 子類 成員 關系 決定性 nbsp 函數 類指針 一、類型的決定性   通過要給指針或引用訪問類的成員,編譯器只是根據指針或者引用的類型決定是否可以訪問該成員,而與此指針或引用的實際目標對象無關。 二、虛函數與多態   如果將基類中的某個成員函數聲明為虛函數(在

shell腳本基礎

shell一、expect腳本同步文件 [root@zlinux-01 ~]# cd /usr/local/sbin/ [root@zlinux-01 sbin]# ls 01.expect 02.expect 03.expect check_ng.sh lvs_dr.sh lvs_nat.sh

04_web基礎之車票實現增刪改查初級版本

lose src uri sed RR 實現 手動添加 jsp頁面 ebs 43.web頁面顯示車票列表簡略完成   代碼:   控制層代碼 1 package com.day03.station.controller; 2 3 import com.day03

Java基礎

Java基礎 從入門到精通 (一)HashMap(1)HashMap集合本身基於哈希表它可以保證鍵的唯一性(Map都是針對鍵有效)HashMap<String,String> String:人的ID編號 String:人的姓名HashMap<Integer,String>

Java基礎面試題

面試題 程序員 面試題:HashMap集合和Hashtable的區別? 共同點:都是map接口的實現類,都是基於哈希表的實現類 HashMap集合線程不安全的類,不同步,執行效率高(允許鍵和值是null的) Hashtable集合線程安全的類,同步,執行效率低(不允許有null鍵和null值)

python基礎:函數

int 工具 位置 spa 不能 lte for fun 接下來 函數就是將一些語句集合在一起的部件,他們能夠不止一次的程序中運行,函數還能夠計算出一個返回值,並能夠改變作為函數輸入的參數。而這些參數在代碼運行時每次都不同。以函數的形式去編寫一個操作可以使它

Python基礎之 set 集合

全部測試程式碼 #!/usr/bin/env python3 #_*_ conding:utf-8 _*_ #set是一組key的集合,但是沒有重複的key,重複的值自動被過濾 # 建立一個set,以list作為輸入集合,輸出的資料用大括號{}顯示,且是無序的 s=set([1

Go語言基礎—— Go語言變數作用域、Go語言陣列、Go語言指標

Go語言變數作用域 作用域為已宣告識別符號所表示的常量、型別、變數、函式或包在原始碼中的作用範圍。  Go 語言中變數可以在三個地方宣告: • 函式內定義的變數稱為區域性變數  • 函式外定義的變數稱為全域性變數  • 函式定義中的變數稱為形式引數&nb

微信小遊戲-CocosCreator 基礎

 Button 勾選SCALE  Enable Auto Grag :內建shader變灰 ,當按鈕不可用時    列印 F12  斷點除錯 :後續講解  js資料型別轉換 :http://www.runoob.com/js/js-type-conversion.html

python之Linux基礎

⽂件壓縮解壓:bzip2tar與bzip2命令結合使⽤實現⽂件打包、壓縮(⽤法和gzip⼀樣)。tar只負責打包⽂件,但不壓縮,⽤bzip2壓縮tar打包後的⽂件,其副檔名⼀般⽤ xxxx.tar.gz2。在tar命令中增加⼀個選項(-j)可以調⽤bzip2實現了⼀個壓縮的功能,實⾏⼀個先打包後壓 縮的過程。

http協議基礎請求首部

請求首部欄位 定義:請求首部欄位是從客戶端到伺服器傳送請求報文中所使用的欄位,裡面包含了附加資訊、客戶端資訊以及對響應內容相關的優先順序等內容 1、Accept 通知伺服器使用者代理可處理的媒體型別及媒體型別的相對優先順序,可使用type/subtype這種形式,一次指定多種媒體型別 Accept:

C#.net 地圖控制元件開發 地圖要素Feature

地圖要素     地圖要素(Feature)是構成地圖圖層的最小單元,它包括地物的幾何形狀,符號和描述資訊。描述資訊可以做成資料表的形式儲存在圖層類中,符號也可以儲存在圖層類中作為預設的要素符號,但是為了在圖層中突出表示某個特殊的地物,所以在地圖要素中也增加了符號屬性。

十二vue.js元件——元件基礎1

1)學習元件的原因 概述 元件是vue.js最核心的功能,也是整個框架設計最精彩的地方,當然也是最難的地方。 原因 Vue.js的元件就是為了提高程式碼重用性和高擴充套件性的,特別是將ui與js作為一個整體進行復用與擴充套件。 一些具體的場景 1.UI構建---

Word基礎帶圈字元

在Word中,如何在字元周圍放置如下圖所示的圓圈或邊框呢? 方法: 選中文字 點選開始選項卡,在字型分類中的右側找到帶圈字元 點選後選擇想要的樣式即可 注:在彈出的帶圈字元對話方塊中可以設定樣式、文字和圈號 樣式中: 1、無:即無任何邊框效果 2、縮小文字(S):即新增邊框後的邊框大小

Python基礎-系統程式設計之程序--multiprocessing阻塞非阻塞

程序擁有自己獨立的堆和棧,既不共享堆,亦不共享棧,程序由作業系統排程。 執行緒擁有自己獨立的棧和共享的堆,共享堆,不共享棧,執行緒亦由作業系統排程(標準執行緒是的)。 協程和執行緒一樣共享堆,不共享棧,協程由程式設計師在協程的程式碼裡顯示排程 multiproces

Python基礎---程序間通訊-Queue

程序之間需要通訊,作業系統提供了很多機制來實現程序間的通訊 1.multiprocessing模組的QUEUE實現多程序之間的資料傳遞。Queue本身是一個訊息佇列程式。 初始化一個Queue物件 q=Queue(num),num 表示最多接收的訊息數量,如果不指定,或數量

UWP入門--幾個簡單的控制元件

每天看幾個,要不聊幾天我就可以看完啦,加油! 看效果 1. CheckBox <TextBlock Grid.Row="0" Text="CheckBox" Vertic

Python3基礎 模組

在程式中定義函式可以實現程式碼重用。但當你的程式碼逐漸變得龐大時,你可能想要把它分割成幾個檔案,以便能夠更簡單地維護。同時,你希望在一個檔案中寫的程式碼能夠被其他檔案所重用,這時我們應該使用模組(module)。 一、匯入模組 在Python中,一個.py檔案就構成一個模組