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) |