import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import javax.swing.event.*;
import java.io.*;
public class menuDemo extends JFrame{
//添加两个面板
JPanel p1=new JPanel();
JPanel p2=new JPanel(new BorderLayout());
//创建网格布局管理器
java.awt.GridLayout grl=new GridLayout(1,1);
java.awt.BorderLayout bly=new BorderLayout();
//创建菜单条对象
javax.swing.JMenuBar jmb=new JMenuBar();
//创建文本框面板
javax.swing.JScrollPane jsp=new JScrollPane();
//创建文件选择对象
FileDialog fd;
//创建监听对象
MymouseListener jt=new MymouseListener();
//创建菜单对象
javax.swing.JMenu menu1=new JMenu("文件");
javax.swing.JMenu menu2=new JMenu("编辑");
javax.swing.JMenu menu3=new JMenu("视图",false);
javax.swing.JMenu menu4=new JMenu("工具",false);
javax.swing.JMenu menu5=new JMenu("关于");
//创建子菜单项对象
javax.swing.JMenuItem item11=new JMenuItem("打开",new ImageIcon("D:/workspace/notepad/src/com/briup/mg/open.gif"));
javax.swing.JMenuItem item12=new JMenuItem("新建",new ImageIcon("D:/workspace/notepad/src/com/briup/mg/new.gif"));
javax.swing.JMenuItem item13=new JMenuItem("保存",new ImageIcon("D:/workspace/notepad/src/com/briup/mg/save.gif"));
javax.swing.JMenuItem item14=new JMenuItem("退出");
//创建子菜单对象
javax.swing.JMenuItem item21=new JMenuItem("全选");
javax.swing.JMenuItem item22=new JMenuItem("剪切",new ImageIcon("D:/workspace/notepad/src/com/briup/mg/cut.gif"));
javax.swing.JMenuItem item23=new JMenuItem("复制",new ImageIcon("D:/workspace/notepad/src/com/briup/mg/copy.gif"));
javax.swing.JMenuItem item24=new JMenuItem("粘贴",new ImageIcon("D:/workspace/notepad/src/com/briup/mg/paste.gif"));
javax.swing.JMenuItem item31=new JMenuItem("文件视图");
javax.swing.JMenuItem item32=new JMenuItem("工具视图");
javax.swing.JMenuItem item33=new JMenuItem("数视图据");
javax.swing.JMenuItem item34=new JMenuItem("空间视图");
javax.swing.JMenuItem item41=new JMenuItem("字符编码");
javax.swing.JMenuItem item42=new JMenuItem("字体设置",new ImageIcon("D:/workspace/notepad/src/com/briup/mg/f.gif"));
javax.swing.JMenu item43=new JMenu("颜色设置");
JMenuItem item431=new JMenuItem("背景颜色",new ImageIcon("D:/workspace/notepad/src/com/briup/mg/bc.gif"));
JMenuItem item432=new JMenuItem("字体颜色",new ImageIcon("D:/workspace/notepad/src/com/briup/mg/fc.gif"));
javax.swing.JMenuItem item51=new JMenuItem("关于我们",new ImageIcon("D:/workspace/notepad/src/com/briup/mg/tips.gif"));
javax.swing.JMenuItem item52=new JMenuItem("帮助",new ImageIcon("D:/workspace/notepad/src/com/briup/mg/help.gif"));
//创建文本域组建对象
javax.swing.JTextArea ja=new JTextArea();
javax.swing.JScrollPane jtx=new JScrollPane(ja);
//弹出式菜单
JPopupMenu menu=new JPopupMenu();
JMenuItem itemCut=new JMenuItem("剪切",new ImageIcon("D:/workspace/notepad/src/com/briup/mg/cut.gif"));
JMenuItem itemPaste=new JMenuItem("粘贴",new ImageIcon("D:/workspace/notepad/src/com/briup/mg/paste.gif"));
JMenuItem itemCopy=new JMenuItem("复制",new ImageIcon("D:/workspace/notepad/src/com/briup/mg/copy.gif"));
JMenuItem itemAll=new JMenuItem("全选");
//字体
int size;
int style;
String name;
menuDemo demo;
public menuDemo(){
//点击窗体关闭按钮窗体自动关闭
this.setDefaultCloseOperation(1);
//设置图标
this.setIconImage(this.getToolkit().getImage("D:/workspace/notepad/src/com/briup/mg/duke.gif"));
//设置标题
this.setTitle("写字板");
//添加面板
this.getContentPane().add(p1,bly.NORTH);
this.getContentPane().add(p2,bly.CENTER);
p1.setLayout(grl);
p1.add(jmb);
fd=new FileDialog(this);
p2.add(jtx);
//设置menu3为不可用
menu3.setEnabled(false);
item41.setEnabled(false);
//添加子菜单选项
menu.add(itemCut);
menu.add(itemCopy);
menu.add(itemPaste);
menu.addSeparator();
menu.add(itemAll);
jmb.add(menu1);
jmb.add(menu2);
jmb.add(menu3);
jmb.add(menu4);
jmb.add(menu5);
menu1.add(item11);
menu1.add(item12);
menu1.add(item13);
menu1.addSeparator();
menu1.add(item14);
menu2.add(item21);
menu2.addSeparator();
menu2.add(item22);
menu2.add(item23);
menu2.add(item24);
menu3.add(item31);
menu3.add(item32);
menu3.add(item33);
menu3.add(item34);
menu4.add(item41);
menu4.addSeparator();
menu4.add(item42);
menu4.addSeparator();
menu4.add(item43);
menu5.add(item51);
menu5.addSeparator();
menu5.add(item52);
item43.add(item431);
item43.addSeparator();
item43.add(item432);
//对子菜单项进行监听
item11.addActionListener(jt);
item14.addActionListener(jt);
item13.addActionListener(jt);
item12.addActionListener(jt);
item21.addActionListener(jt);
item22.addActionListener(jt);
item23.addActionListener(jt);
item24.addActionListener(jt);
item41.addActionListener(jt);
item42.addActionListener(jt);
item431.addActionListener(jt);
item432.addActionListener(jt);
itemCut.addActionListener(jt);
itemPaste.addActionListener(jt);
itemCopy.addActionListener(jt);
itemAll.addActionListener(jt);
item51.addActionListener(jt);
item52.addActionListener(jt);
//弹出菜单
demo=this;
ja.addMouseListener(new MouseAdapter()
{
public void mousePressed(MouseEvent e)
{
if(e.getButton()==e.BUTTON3)
{
menu.show(e.getComponent(),e.getX(),e.getY());
}
}
});
//窗体退出
this.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
}
class MymouseListener implements java.awt.event.ActionListener{
public void actionPerformed(ActionEvent e){
if(e.getSource()==item14){
System.exit(0);
}
if(e.getSource()==item11){
//设置文件对话框模式为打开模式
fd.setMode(FileDialog.LOAD);
//设置文件对话框大小
fd.setSize(300,400);
fd.setVisible(true);
//通过文件对话框获取要打开的文件的路径和文件名
try{
//创建文件类对象并通过文件对话框类获取文件路径和文件名称
File f=new File(fd.getDirectory(),fd.getFile());
//创建文件输入流对象
FileInputStream fin=new FileInputStream(f);
//将获取的字符转化为字符串
byte[] b=new byte[fin.available()];
fin.read(b);
String str1=new String(b);
//将读取得字符串放到文本框中
ja.setText(str1);
//将文件输入流关闭
fin.close();
}catch(Exception e2){
}
}
if(e.getSource()==item13){
try{
//设置文件对话框模式为保存模式
fd.setMode(FileDialog.SAVE);
//设置文件对话框大小
fd.setSize(300,200);
fd.setVisible(true);
//获取文本域的字符串对象
String st=ja.getText();
//System.out.println(fd.getDirectory());--测试
//通过文件对话框获取要保存的文件路径和要保存的文件名称
File fl=new File(fd.getDirectory(),fd.getFile());
//通过文件对象创建文件输出流对象
FileOutputStream fout=new FileOutputStream(fl);
//通过文件输出流对象将文本框中的数据写入指定文件
fout.write(st.getBytes());
//关闭文件输出流
fout.close();
}catch(Exception e1){
System.out.println(e1);
}
}
if(e.getSource()==item42)
{
//调用字体选择对话框
FontChooser font=new FontChooser(demo);
}
if(e.getSource()==item12){
ja.setText("");
}
if(e.getSource()==item51){
JOptionPane.showMessageDialog(null,new String("作者:花生豆\n"+"制作公司:丐帮工作室\n"+"版本: ver1.0bate"),"关于",JOptionPane.INFORMATION_MESSAGE,new ImageIcon("logo.gif"));
}
if(e.getSource()==item22)
{
cut();
}
if(e.getSource()==item23)
{
copy();
}
if(e.getSource()==item24)
{
paste();
}
if(e.getSource()==item21)
{
selectAl