package com.imooc.swing;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.FileDialog;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.FileDialog;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
import jdk.nashorn.internal.scripts.JO;
public class NotepaidTest {
public static void main(String[] args) {
MyFrame mf = new MyFrame("小博记事本");
MyFrame mf = new MyFrame("小博记事本");
}
}
class MyFrame extends JFrame{
private JTextArea text = null;//多行文本框
private JScrollPane s_pane = null;//带滚动条的面板
private JMenuBar menubar = null;//菜单栏
private JMenu menu_file =null;//文件菜单
private JMenu menu_help = null;//帮助
private JMenuItem menu_new = null;//新建
private JMenuItem menu_open = null;//打开
private JMenuItem menu_exit= null;//退出
private JMenuItem menu_about = null;//关于
public MyFrame(String titel) {
super(titel);
init();
registerListener();
}
/**
* 初始化相关组件
*/
public void init() {
menubar = new JMenuBar();
menu_file = new JMenu("文件");
menu_new = new JMenuItem("新建");
menu_open = new JMenuItem("打开");
menu_exit = new JMenuItem("退出");
menu_help = new JMenu("帮助");
menu_about = new JMenuItem("关于");
text = new JTextArea();//多行文本框,JTextField单行文本框
s_pane = new JScrollPane(text);
s_pane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
Container cPane = this.getContentPane();
cPane.add(s_pane, BorderLayout.CENTER);
this.setSize(500, 300);//设置窗口大小
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭窗口
/**
* 添加菜单
*/
menu_file.add(menu_new);
menu_file.add(menu_open);
menu_file.add(menu_exit);
menu_help.add(menu_about);
menubar.add(menu_file);
menubar.add(menu_help);
/**
* 把菜单栏添加到窗体里
*/
this.setJMenuBar(menubar);
/**
* 设置窗口居中显示
*/
//定义一个工具包
Toolkit kit = Toolkit.getDefaultToolkit();
Dimension screenSize = kit.getScreenSize();
int screenWidth = screenSize.width;//获得屏幕宽度
int screenHeight = screenSize.height;//获得屏幕高度
int windowWidth = this.getWidth();//获得窗口宽度
int windowHeight = this.getHeight();//获得窗口高度
this.setLocation((screenWidth-windowWidth)/2,(screenHeight-windowHeight)/2);//设置窗口位置
this.setVisible(true);//设置窗体可见
}
/**
* 给相关组件添加对应的事件监听器
*/
private void registerListener() {
menu_new.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
newFile();
}
});
menu_open.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
open_File();
}
});
menu_exit.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
exit();
}
});
menu_about.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
about();
}
});
}
/**
* 新建的功能
*/
private void newFile() {
if(!(text.getText().equals(""))) {
int res = JOptionPane.showConfirmDialog(null, "是否保存?","提示信息",
JOptionPane.YES_NO_OPTION);
if(res == JOptionPane.YES_OPTION) {
//文件保存对话框
FileDialog fd = new FileDialog(this, "文件保存", FileDialog.SAVE);
fd.setVisible(true);
}else {
text.setText("");//清空记事本
}
}
}
/**
* 打开的功能
*/
private void open_File() {
FileDialog fd = new FileDialog(this,"打开文件",FileDialog.LOAD);
fd.setVisible(true);
}
/**
* 退出
*/
private void exit() {
newFile();
System.exit(0);
}
/**
* 关于
*/
private void about() {
new AboutDialog(MyFrame.this,"关于",true);
}
}
private JTextArea text = null;//多行文本框
private JScrollPane s_pane = null;//带滚动条的面板
private JMenuBar menubar = null;//菜单栏
private JMenu menu_file =null;//文件菜单
private JMenu menu_help = null;//帮助
private JMenuItem menu_new = null;//新建
private JMenuItem menu_open = null;//打开
private JMenuItem menu_exit= null;//退出
private JMenuItem menu_about = null;//关于
public MyFrame(String titel) {
super(titel);
init();
registerListener();
}
/**
* 初始化相关组件
*/
public void init() {
menubar = new JMenuBar();
menu_file = new JMenu("文件");
menu_new = new JMenuItem("新建");
menu_open = new JMenuItem("打开");
menu_exit = new JMenuItem("退出");
menu_help = new JMenu("帮助");
menu_about = new JMenuItem("关于");
text = new JTextArea();//多行文本框,JTextField单行文本框
s_pane = new JScrollPane(text);
s_pane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
Container cPane = this.getContentPane();
cPane.add(s_pane, BorderLayout.CENTER);
this.setSize(500, 300);//设置窗口大小
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭窗口
/**
* 添加菜单
*/
menu_file.add(menu_new);
menu_file.add(menu_open);
menu_file.add(menu_exit);
menu_help.add(menu_about);
menubar.add(menu_file);
menubar.add(menu_help);
/**
* 把菜单栏添加到窗体里
*/
this.setJMenuBar(menubar);
/**
* 设置窗口居中显示
*/
//定义一个工具包
Toolkit kit = Toolkit.getDefaultToolkit();
Dimension screenSize = kit.getScreenSize();
int screenWidth = screenSize.width;//获得屏幕宽度
int screenHeight = screenSize.height;//获得屏幕高度
int windowWidth = this.getWidth();//获得窗口宽度
int windowHeight = this.getHeight();//获得窗口高度
this.setLocation((screenWidth-windowWidth)/2,(screenHeight-windowHeight)/2);//设置窗口位置
this.setVisible(true);//设置窗体可见
}
/**
* 给相关组件添加对应的事件监听器
*/
private void registerListener() {
menu_new.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
newFile();
}
});
menu_open.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
open_File();
}
});
menu_exit.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
exit();
}
});
menu_about.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
about();
}
});
}
/**
* 新建的功能
*/
private void newFile() {
if(!(text.getText().equals(""))) {
int res = JOptionPane.showConfirmDialog(null, "是否保存?","提示信息",
JOptionPane.YES_NO_OPTION);
if(res == JOptionPane.YES_OPTION) {
//文件保存对话框
FileDialog fd = new FileDialog(this, "文件保存", FileDialog.SAVE);
fd.setVisible(true);
}else {
text.setText("");//清空记事本
}
}
}
/**
* 打开的功能
*/
private void open_File() {
FileDialog fd = new FileDialog(this,"打开文件",FileDialog.LOAD);
fd.setVisible(true);
}
/**
* 退出
*/
private void exit() {
newFile();
System.exit(0);
}
/**
* 关于
*/
private void about() {
new AboutDialog(MyFrame.this,"关于",true);
}
}
/**
* 创建一个关于对话框
*/
class AboutDialog extends JDialog{
JLabel desc = null;
JPanel panel = null;
JButton btn = null;
public AboutDialog(MyFrame frame,String titel,boolean modal) {
super(frame, titel,modal);
init();
registerListener();
}
private void init() {
desc = new JLabel();
panel = new JPanel();
btn = new JButton("ok");
desc.setText("<html>这是一个自定义的记事本,处于初级阶段,还得<br/>大家多多指教。</html>");
desc.setHorizontalAlignment(JLabel.CENTER);
panel.add(btn);
this.add(desc);//默认放在中间
this.add(panel,BorderLayout.SOUTH);
this.setSize(300, 200);
Toolkit kit = Toolkit.getDefaultToolkit();
Dimension screenSize = kit.getScreenSize();
int screenWidth = screenSize.width;//获得屏幕宽度
int screenHeight = screenSize.height;//获得屏幕高度
int windowWidth = this.getWidth();//获得窗口宽度
int windowHeight = this.getHeight();//获得窗口高度
this.setLocation((screenWidth-windowWidth)/2,(screenHeight-windowHeight)/2);//设置窗口位置
}
private void registerListener() {
btn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
AboutDialog.this.dispose();//释放相关资源,关闭对话框
}
});
AboutDialog.this.setVisible(true);
}
}
* 创建一个关于对话框
*/
class AboutDialog extends JDialog{
JLabel desc = null;
JPanel panel = null;
JButton btn = null;
public AboutDialog(MyFrame frame,String titel,boolean modal) {
super(frame, titel,modal);
init();
registerListener();
}
private void init() {
desc = new JLabel();
panel = new JPanel();
btn = new JButton("ok");
desc.setText("<html>这是一个自定义的记事本,处于初级阶段,还得<br/>大家多多指教。</html>");
desc.setHorizontalAlignment(JLabel.CENTER);
panel.add(btn);
this.add(desc);//默认放在中间
this.add(panel,BorderLayout.SOUTH);
this.setSize(300, 200);
Toolkit kit = Toolkit.getDefaultToolkit();
Dimension screenSize = kit.getScreenSize();
int screenWidth = screenSize.width;//获得屏幕宽度
int screenHeight = screenSize.height;//获得屏幕高度
int windowWidth = this.getWidth();//获得窗口宽度
int windowHeight = this.getHeight();//获得窗口高度
this.setLocation((screenWidth-windowWidth)/2,(screenHeight-windowHeight)/2);//设置窗口位置
}
private void registerListener() {
btn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
AboutDialog.this.dispose();//释放相关资源,关闭对话框
}
});
AboutDialog.this.setVisible(true);
}
}