1. 程式人生 > >Swing學習(七)——系統預設對話方塊

Swing學習(七)——系統預設對話方塊

package com.xyzx.swing;
 
import java.awt.Event;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;

import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JSeparator;
import javax.swing.KeyStroke;
 
/**
 * @description 我的記事本主程式
 */
public class NotePad {
 
	/**
	 * 建構函式
	 */
	public NotePad(){
		// 1、 初始化窗體
		// 匈牙利命名法:字首+單詞
		JFrame frmnotePad = new JFrame("我的記事本");
		frmnotePad.setSize(300, 300);
		frmnotePad.setLocationRelativeTo(null);//居中
		
		// 2、新增選單
		JMenuBar menuBar = new JMenuBar();
		JMenu menuFile = new JMenu("檔案(F)");
		JMenuItem itemNew = new JMenuItem("新建(N)");
		JMenuItem itemOpen = new JMenuItem("開啟(O)");
		JMenuItem itemSave = new JMenuItem("儲存(S)");
		JMenuItem itemSave2 = new JMenuItem("另存為");
		JSeparator separatorOne = new JSeparator();
		JMenuItem itemSetting = new JMenuItem("頁面設定");
		JMenuItem itemPrint = new JMenuItem("列印(P)");
		JMenuItem itemExit = new JMenuItem("退出(X) Ctrl+X");
		// 新增熱鍵,Ctrl+X起作用
		itemExit.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,Event.CTRL_MASK));
		JSeparator separatorTwo = new JSeparator();// 分隔符
		
		// 新增快捷鍵(Alt+F)
		menuFile.setMnemonic('F');
		menuFile.setMnemonic('N');
		menuFile.setMnemonic('O');
		menuFile.setMnemonic('S');
		menuFile.setMnemonic('P');
		menuFile.setMnemonic('X');
		
		menuFile.add(itemNew);
		menuFile.add(itemOpen);
		menuFile.add(itemSave);
		menuFile.add(itemSave2);
		menuFile.add(separatorOne);
		menuFile.add(itemSetting);
		menuFile.add(itemPrint);
		menuFile.add(separatorTwo);
		menuFile.add(itemExit);
		
		menuBar.add(menuFile);
		// 注意:不用add新增,setJMenuBar
		frmnotePad.setJMenuBar(menuBar);
		frmnotePad.setVisible(true);
		
		// 3、新增退出單擊事件
		itemExit.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				// 新增系統預設的訊息框
				int result = JOptionPane.showConfirmDialog(null, "是否退出?","提示",
						JOptionPane.YES_NO_OPTION);
				if (JOptionPane.YES_OPTION == result) {
					System.exit(0);
				}
			}
		});
	}
	
	public static void main(String[] args) {
		new NotePad();
	}
 
}

效果: 

點選否提示框關閉。

點選是就退出。