Swing学习(七)——系统默认对话框

本文详细介绍使用Java 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();
	}
 
}

效果: 

点击否提示框关闭。

点击是就退出。

 

 

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.JFileChooser;
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;
import javax.swing.filechooser.FileNameExtensionFilter;
 
/**
 * @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);
				}
			}
		});
		
		itemOpen.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				JFileChooser chooser = new JFileChooser();
				chooser.showOpenDialog(frmnotePad);//frmnotePad是父窗体
			}
		});
	}
	
	public static void main(String[] args) {
		new NotePad();
	}
 
}

效果:

点击打开

二、获取打开的文件

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.JFileChooser;
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;
import javax.swing.filechooser.FileNameExtensionFilter;
 
/**
 * @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);
				}
			}
		});
		
		itemOpen.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				JFileChooser chooser = new JFileChooser();
				FileNameExtensionFilter filter = new FileNameExtensionFilter("文本文件(.txt)", "txt");
				chooser.setFileFilter(filter);
				int result = chooser.showOpenDialog(null);//frmnotePad是父窗体
				if (JFileChooser.APPROVE_OPTION == result) {
					System.out.println("你选择的文件名是:"+chooser.getSelectedFile().getName());
					System.out.println("文件的路径1:"+chooser.getSelectedFile().getPath());
					System.out.println("文件的路径:"+chooser.getCurrentDirectory());
				}
			}
		});
	}
	
	public static void main(String[] args) {
		new NotePad();
	}

}

 结果:

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值