小博老師解析Java核心技術 ——JSwing高級菜單製做

[引言]數據庫

咱們在學習Java編程的時候,若是須要開發客戶端窗體類型的程序,能夠使用JDK中的awt和swing庫。本文開始小博老師就繼續爲你們演示Java窗體編程中的菜單欄製做,今天主要講解的菜單欄中的高級功能。編程

 

[步驟閱讀一]二級菜單欄學習

在以前基礎菜單的文章中,咱們瞭解到,想要把菜單項(JMenuItem)存放在菜單(JMenu)中,咱們使用的是JMenu.add(JMenuItem item)。那麼若是咱們想要在菜單(JMenu)中再增長一個二級菜單呢?其實很簡單,菜單(JMenu)中不但能夠添加菜單項(JMenuItem),還能夠繼續添加菜單(JMenu),這就是二級甚至三級菜單的製做思路。code

咱們先經過一個簡單案例來體會一下,核心代碼以下:對象

public class MenuFrame extends JFrame{blog

public MenuFrame(){ip

setBounds(100, 20, 415, 660);開發

setLayout(null);get

// 實例化 菜單欄 對象it

JMenuBar bar = new JMenuBar();

// 實例化 菜單 對象

JMenu menu1 = new JMenu("課程簡介");

JMenu menu2 = new JMenu("師資力量");

JMenu menu3 = new JMenu("學員做品");

JMenu menu4 = new JMenu("就業案例");

JMenu menu5 = new JMenu("關於博爲峯");

// 實例化 菜單項 對象

JMenu menu11 = new JMenu("全棧Java課程"); // 一級菜單中添加二級菜單

JMenuItem item12 = new JMenuItem("全棧Web+UI課程");

JMenuItem item13 = new JMenuItem("全棧iOS課程");

// 實例化 二級菜單項 對象

JMenuItem item111 = new JMenuItem("JavaSE標準版");

JMenuItem item112 = new JMenuItem("JavaWeb製做");

JMenuItem item113 = new JMenuItem("SQL數據庫");

JMenuItem item114 = new JMenuItem("JavaEE企業版");

JMenuItem item115 = new JMenuItem("Android應用");

// 將 菜單項 添加到 菜單 中

menu1.add(menu11);menu1.add(item12);menu1.add(item13);

// 將 二級菜單項 添加到 二級菜單 中

menu11.add(item111);menu11.add(item112);menu11.add(item113);menu11.add(item114);menu11.add(item115);

// 將 菜單 添加到 菜單欄 中

bar.add(menu1);bar.add(menu2);bar.add(menu3);bar.add(menu4);bar.add(menu5);

// 將 菜單欄 添加到 窗體 中

setJMenuBar(bar);

setVisible(true);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

}

咱們實例化窗體對象而且運行後效果以下:

[步驟閱讀二]單選和複選菜單項

有的時候,在菜單製做過程當中,咱們須要添加一些能夠單選或則複選的選項,供用戶選擇,此時咱們就須要使用到單選(JRadioButtonMenuItem)和複選菜單項(JCheckBoxMenuItem),它們都是JMenuItem菜單項的派生類。

咱們先經過一個簡單案例來體會一下,核心代碼以下:

public class MenuFrame extends JFrame{

public MenuFrame(){

setBounds(100, 20, 600, 400);

setLayout(null);

// 實例化 菜單欄 對象

JMenuBar bar = new JMenuBar();

// 實例化 菜單 對象

JMenu menu1 = new JMenu("課程簡介");

JMenu menu2 = new JMenu("師資力量");

JMenu menu3 = new JMenu("學員做品");

JMenu menu4 = new JMenu("就業案例");

JMenu menu5 = new JMenu("關於博爲峯");

// 實例化 菜單項 對象

JMenu menu11 = new JMenu("全棧Java課程"); // 一級菜單中添加二級菜單

JMenuItem item12 = new JMenuItem("全棧Web+UI課程");

JMenuItem item13 = new JMenuItem("全棧iOS課程");

// 實例化 單選菜單項 對象

JRadioButtonMenuItem item21 = new JRadioButtonMenuItem("上海漕河涇校區");

JRadioButtonMenuItem item22 = new JRadioButtonMenuItem("北京回龍觀校區");

JRadioButtonMenuItem item23 = new JRadioButtonMenuItem("深圳華強北校區");

JRadioButtonMenuItem item24 = new JRadioButtonMenuItem("南京新街口校區");

JRadioButtonMenuItem item25 = new JRadioButtonMenuItem("成都航空路校區");

// 實例化 複選菜單項 對象

JCheckBoxMenuItem item26 = new JCheckBoxMenuItem("JavaSE師資庫");

JCheckBoxMenuItem item27 = new JCheckBoxMenuItem("JavaWeb師資庫");

JCheckBoxMenuItem item28 = new JCheckBoxMenuItem("SQL師資庫");

JCheckBoxMenuItem item29 = new JCheckBoxMenuItem("JavaEE師資庫");

JCheckBoxMenuItem item30 = new JCheckBoxMenuItem("Android師資庫");

// 實例化按鈕組 對象  爲了讓單選按鈕出現互斥效果

ButtonGroup group = new ButtonGroup();

// 將 單選按鈕菜單項 添加到 按鈕分組 中

group.add(item21);group.add(item22);group.add(item23);group.add(item24);group.add(item25);

// 實例化 二級菜單項 對象

JMenuItem item111 = new JMenuItem("JavaSE標準版");

JMenuItem item112 = new JMenuItem("JavaWeb製做");

JMenuItem item113 = new JMenuItem("SQL數據庫");

JMenuItem item114 = new JMenuItem("JavaEE企業版");

JMenuItem item115 = new JMenuItem("Android應用");

// 將 菜單項 添加到 菜單 中

menu1.add(menu11);menu1.add(item12);menu1.add(item13);

menu2.add(item21);menu2.add(item22);menu2.add(item23);menu2.add(item24);menu2.add(item25);

// 添加分割線

menu2.addSeparator();

menu2.add(item26);menu2.add(item27);menu2.add(item28);menu2.add(item29);menu2.add(item30);

// 將 二級菜單項 添加到 二級菜單 中

menu11.add(item111);menu11.add(item112);menu11.add(item113);menu11.add(item114);menu11.add(item115);

// 將 菜單 添加到 菜單欄 中

bar.add(menu1);bar.add(menu2);bar.add(menu3);bar.add(menu4);bar.add(menu5);

// 將 菜單欄 添加到 窗體 中

setJMenuBar(bar);

setVisible(true);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

}

 

咱們實例化窗體對象而且運行後效果以下:

相關文章
相關標籤/搜索