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();
}
}
结果: