中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java是如何做帶復選框的菜單

發布時間:2021-12-20 08:59:16 來源:億速云 閱讀:181 作者:柒染 欄目:開發技術

本篇文章為大家展示了Java是如何做帶復選框的菜單,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

Java是如何做帶復選框的菜單

說明:

        上面是我用Java做的掃雷游戲,其中就用到了帶復選框式的菜單,原來也是用JCheckBoxMenuItem做的,但發現實在是問題多多,后干脆就用普通的JMenuItem來做,效果也不錯。實際上說穿了很簡單,就是在菜單的文本上做文章,前面加上一個 √ 即可。通過比較文本內容來判斷是顯示選中還是未選中,前面加還是不加 √ ,同時其他的文本內容如何變化,就好像掃雷的難度,初級、中級、高級只能選中一個。

代碼:

package com.game.mine;
 
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JCheckBoxMenuItem;
 
/**
 * 功能:游戲窗口<br>
 * 作者:我是小木魚(Lag)<br>
 */
public class GameFrame extends JFrame implements ActionListener
{
	private static final long serialVersionUID = 2596945399892762751L;
 
	/** 游戲面板 */
	private GamePanel gamePanel;
	
	/** 菜單控件 */
    JMenuItem jmi_easy,jmi_normal,jmi_hard;
        
	/**
	 * 功能:構造函數<br>
	 */
	public GameFrame()
	{
		try
		{
			//窗口
			this.setTitle("掃雷");
			this.setLayout(null);
			this.setResizable(false);
			this.setLocationRelativeTo(null);
			this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
			//菜單
			JMenuBar jmb_minesweeper = new JMenuBar();
			JMenu jm_game = new JMenu("游戲");
			jm_game.setFont(new Font("微軟雅黑",Font.PLAIN,12));
			JMenuItem jmi_new = jm_game.add("  開局");
			jmi_new.setFont(new Font("微軟雅黑",Font.PLAIN,12));
			jmi_new.addActionListener(this);
			jmi_new.setActionCommand("new");
			jm_game.addSeparator();
            this.jmi_easy = jm_game.add("√ 初級");
			this.jmi_easy.setFont(new Font("微軟雅黑",Font.PLAIN,12));
			this.jmi_easy.addActionListener(this);
			this.jmi_easy.setActionCommand("easy");
            this.jmi_normal = jm_game.add("  中級");
			this.jmi_normal.setFont(new Font("微軟雅黑",Font.PLAIN,12));
			this.jmi_normal.addActionListener(this);
			this.jmi_normal.setActionCommand("normal");
            this.jmi_hard = jm_game.add("  高級");
			this.jmi_hard.setFont(new Font("微軟雅黑",Font.PLAIN,12));
			this.jmi_hard.addActionListener(this);
			this.jmi_hard.setActionCommand("hard");
			jm_game.addSeparator();
			JMenuItem jmi_exit = jm_game.add("  退出");
			jmi_exit.setFont(new Font("微軟雅黑",Font.PLAIN,12));
			jmi_exit.addActionListener(this);
			jmi_exit.setActionCommand("exit");
			jmb_minesweeper.add(jm_game);
			JMenu jm_help = new JMenu("幫助");
			jm_help.setFont(new Font("微軟雅黑",Font.PLAIN,12));
			JMenuItem jmi_about = jm_help.add("關于");
			jmi_about.setFont(new Font("微軟雅黑",Font.PLAIN,12));
			jmi_about.addActionListener(this);
			jmi_about.setActionCommand("about");
			jmb_minesweeper.add(jm_help);
			this.setJMenuBar(jmb_minesweeper);
			//面板
			this.gamePanel = new GamePanel();
			this.add(this.gamePanel);
			//顯示
			this.gamePanel.setLevel(this.gamePanel.EASY);
			this.setSize(this.gamePanel.getWidth() + 6,this.gamePanel.getHeight() + 50);
			this.setVisible(true);
		}
		catch(Exception e)
		{
			JOptionPane.showMessageDialog(this,"程序出現異常錯誤,即將退出!\r\n\r\n"+e.toString(),"提示",JOptionPane.ERROR_MESSAGE);
			System.exit(0);
		}
	}
	
	/**
	 * 功能:事件監聽<br>
	 */
	@Override
	public void actionPerformed(ActionEvent e)
	{
		String command = e.getActionCommand();
		if("new".equals(command))
		{
			this.gamePanel.newGame();
		}
		else if("easy".equals(command))
		{
             this.jmi_easy.setText("√ 初級");
             this.jmi_normal.setText("  中級");
             this.jmi_hard.setText("  高級");
             this.gamePanel.setLevel(this.gamePanel.EASY);
             this.setSize(this.gamePanel.getWidth() + 6,this.gamePanel.getHeight() + 50);
		}
		else if("normal".equals(command))
		{
              this.jmi_easy.setText("  初級");
              this.jmi_normal.setText("√ 中級");
              this.jmi_hard.setText("  高級");
              this.gamePanel.setLevel(this.gamePanel.NORMAL);
              this.setSize(this.gamePanel.getWidth() + 6,this.gamePanel.getHeight() + 50);
		}
		else if("hard".equals(command))
		{
               this.jmi_easy.setText("  初級");
               this.jmi_normal.setText("  中級");
               this.jmi_hard.setText("√ 高級");
               this.gamePanel.setLevel(this.gamePanel.HARD);
               this.setSize(this.gamePanel.getWidth() + 6,this.gamePanel.getHeight() + 50);
		}
		else if("exit".equals(command))
		{
			System.exit(0);
		}
		else if("about".equals(command))
		{
			JOptionPane.showMessageDialog(this,"我是小木魚(Lag)","提示",JOptionPane.INFORMATION_MESSAGE);
		}
	}
 
}

上述內容就是Java是如何做帶復選框的菜單,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

柞水县| 前郭尔| 马关县| 衡阳市| 阿克陶县| 易门县| 阳江市| 缙云县| 大名县| 东莞市| 兴和县| 鄂温| 龙海市| 壤塘县| 阜宁县| 香格里拉县| 诸暨市| 崇仁县| 广州市| 屯昌县| 西藏| 赤峰市| 延寿县| 西城区| 斗六市| 阿城市| 彩票| 日照市| 南通市| 玉环县| 台南县| 炎陵县| 昌图县| 邢台市| 东兰县| 大连市| 西峡县| 广西| 中牟县| 那曲县| 安达市|