Chinaunix首页 | 论坛 | 博客
  • 博客访问: 494827
  • 博文数量: 96
  • 博客积分: 6046
  • 博客等级: 准将
  • 技术积分: 908
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-07 22:40
文章分类

全部博文(96)

文章存档

2009年(12)

2008年(18)

2007年(45)

2006年(21)

我的朋友

分类: Java

2006-03-07 22:55:00

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.io.*;

public class star
{
public static void main(String[] args)

{

MenuFrame frame=new MenuFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.show();//建立新窗口

}
}
class MenuFrame extends JFrame implements ActionListener//监听

{

public MenuFrame()
{
settitle("JAVA记事本");
setSize(WIDTH,HEIGHT);
setResizable(false);
Container contentPane=getContentPane();
JPanel textPanel=new JPanel();
scrollArea=new JTextArea("欢迎使用,请按新建",24,34);
JScrollPane scrollPane=new JScrollPane(scrollArea);
scrollArea.setLineWrap(true);//
textPanel.add(scrollPane);
contentPane.add(textPanel);//建立文本区,设置各项属性

JMenuBar menuBar = new JMenuBar();
setJMenuBar(menuBar);
JMenu fileMenu = new JMenu("文件(F)");
JMenu fileMenu1 = new JMenu("编辑(E)");
JMenu fileMenu2 = new JMenu("关于(H)");
fileMenu.setMnemonic('F');
fileMenu1.setMnemonic('E');
fileMenu2.setMnemonic('H');//主菜单

newItem=new JMenuItem("新建");
newItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, InputEvent.CTRL_MASK));
newItem.addActionListener(this);
openItem=new JMenuItem("打开");
openItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, InputEvent.CTRL_MASK));
openItem.addActionListener(this);
saveItem=new JMenuItem("保存");
saveItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, InputEvent.CTRL_MASK));
saveItem.addActionListener(this);
exitItem=new JMenuItem("退出");
exitItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Q, InputEvent.ALT_MASK));
exitItem.addActionListener(this);

selectallItem=new JMenuItem("全选");
selectallItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A, InputEvent.CTRL_MASK));
selectallItem.addActionListener(this);
copyItem=new JMenuItem("复制");
copyItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, InputEvent.CTRL_MASK));
copyItem.addActionListener(this);
cutItem=new JMenuItem("剪贴");
cutItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, InputEvent.CTRL_MASK));
cutItem.addActionListener(this);
pasteItem=new JMenuItem("粘贴");
pasteItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V, InputEvent.CTRL_MASK));
pasteItem.addActionListener(this);

//fileMenu.addSeparator();//划线

ButtonGroup group = new ButtonGroup();
forwardItem = new JRadioButtonMenuItem("自动换行");
forwardItem.addActionListener(this);
forwardItem.setSelected(true);

backwardItem = new JRadioButtonMenuItem("手动换行");
backwardItem.addActionListener(this);

group.add(forwardItem);
group.add(backwardItem);

logoItem=new JMenuItem("关于这个简陋的记事本");
logoItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_H, InputEvent.CTRL_MASK));
logoItem.addActionListener(this);//各菜单项

fileMenu.add(newItem);
fileMenu.add(openItem);
fileMenu.add(saveItem);
fileMenu.add(exitItem);

fileMenu1.add(selectallItem);
fileMenu1.add(cutItem);
fileMenu1.add(copyItem);
fileMenu1.add(pasteItem);
fileMenu1.addSeparator();
fileMenu1.add(forwardItem);
fileMenu1.add(backwardItem);

fileMenu2.add(logoItem);

menuBar.add(fileMenu);
menuBar.add(fileMenu1);
menuBar.add(fileMenu2);//按级加入各级菜单

}

 
public void actionPerformed(ActionEvent event)
{

if(event.getSource()==newItem)
{
String s="";
scrollArea.setText(s);
    }//定义“打开”方法
    if(event.getSource()==openItem)
{
Frame f=new Frame("打开");
TextArea text=new TextArea(40,40);
FileDialog fd=new FileDialog(f,"",FileDialog.LOAD);
fd.setVisible(true);
String fpath=fd.getDirectory();
String fname=fd.getFile();
String si=fpath+fname;
File file=new File(si);
try
{
BufferedReader in=new BufferedReader(new FileReader(file));
String s;
s=in.readLine();
while(s!=null)
{
scrollArea.append(s+"\n");
s=in.readLine();
}
in.close();
}

catch(IOException e)
{

}
           }//打开的算法
   if(event.getSource()==saveItem)
{String fns;
OutputStreamWriter osw;
   
      Frame saveFileFrame = new Frame("保存");
       FileDialog fileDialog = new FileDialog(saveFileFrame);
       fileDialog.setMode(FileDialog.SAVE);
       fileDialog.setFile("*.txt");
       fileDialog.show();
       String file = fileDialog.getFile();
       String directory = fileDialog.getDirectory();
       if(file != null) {
         fns = directory + file;
         try{
           osw = new OutputStreamWriter(
                   new BufferedOutputStream(
                       new FileOutputStream(fns)));
           osw.write(scrollArea.getText(), 0, scrollArea.getText().length());
           osw.close();
      } catch(IOException e) {
            }
       }
     }//保存的算法
    if(event.getSource()==exitItem)
{
System.exit(0);
}//退出
if(event.getSource()==selectallItem)
{
scrollArea.selectAll();
}//全选
if(event.getSource()==copyItem)
{
scrollArea.copy();
}//复制
if(event.getSource()==cutItem)
{
scrollArea.cut();
}//剪切

if(event.getSource()==pasteItem)
{
  scrollArea.paste();
  }//复制
if(event.getSource()==forwardItem)
{
  scrollArea.setLineWrap(true);
  }//自动换行
if(event.getSource()==backwardItem)
{
  scrollArea.setLineWrap(false);
  }//手动换行      
if(event.getSource()==logoItem)
{
int selection = JOptionPane.showConfirmDialog(this,
"简陋记事本,Copyright:2006-2008 \n           nrstar\n        2006-01-10\n         版本:1.7", "关于本本",
JOptionPane.DEFAULT_OPTION,
JOptionPane.WARNING_MESSAGE);
}

}//弹出窗口
public   int WIDTH=400;
public   int HEIGHT=500;
private JTextArea scrollArea;                                                                  
private JMenuItem newItem;
private JMenuItem openItem;
private JMenuItem saveItem;
private JMenuItem exitItem;
private JMenuItem selectallItem;
private JMenuItem copyItem;
private JMenuItem cutItem;
private JMenuItem pasteItem;
private JMenuItem forwardItem;
private JMenuItem backwardItem;
  private JMenuItem logoItem;//定义窗口大小和菜单项

}
阅读(1045) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~