用按钮调用jsp代码怎么写

网络整理 - 07-26

  //导入JAVA类包
  import java.awt.*;
  import java.awt.event.*;
  import javax.swing.*;
  import java.io.*;

  class EditFile
  {
  //默认构造函数
  EditFile(){}
  //保存文件函数
  void SaveFile(String name,String str)
  {
  try
  {
  //声明文件输出对象
  FileOutputStream fos = new FileOutputStream(name);
  //输出保存文件
  fos.write(str.getBytes());
  }
  catch (IOException e)
  {
  //发生错误打印错误信息
  System.out.println(e.toString());
  }
  }
  //打开文件函数
  String OpenFile(String name)
  {
  //定义字符串str来保存文件内容
  String str=null;
  //定义计数器
  int ch=0;
  try
  {
  //声明文件输入对象
  FileInputStream fis = new FileInputStream(name);
  //遍历输入对象,将内存存储到str中
  while ((ch=fis.read())!=-1)
  {
  str=str+(char)ch;
  }
  //关闭文件对象
  fis.close();
  }
  catch (IOException e)
  {
  //发生错误打印错误信息
  System.out.println(e.toString());
  }
  //返回str
  return str;
  }
  }

  class MyMainFrame extends JFrame implements ActionListener
  {
  //文件名
  String filename=null;
  //查找字符串
  String findtxt=null;
  //替换字符串
  String replacetxt=null;
  //查找开始位
  int findtxton=-1;
  //查找结束位
  int findtxtoff=-1;
  //中间面版
  Container c=getContentPane();
  //菜单
  JMenuBar mainMb=new JMenuBar();
  //菜单按钮
  JMenu fileMenu=new JMenu("文件");
  JMenu editMenu=new JMenu("编辑");
  JMenu typeMenu=new JMenu("格式");
  JMenuItem newItem=new JMenuItem("新建");
  JMenuItem openItem=new JMenuItem("打开");
  JMenuItem saveItem=new JMenuItem("保存");
  JMenuItem saveasItem=new JMenuItem("另存为");
  JMenuItem exitItem=new JMenuItem("退出");
  JMenuItem findItem=new JMenuItem("查找");
  JMenuItem findnextItem=new JMenuItem("查找下一个");
  JMenuItem changeItem=new JMenuItem("替换");
  JCheckBoxMenuItem changelineItem=new JCheckBoxMenuItem("自动换行",false);
  //文本域
  JTextArea txt=new JTextArea();
  JTextArea txt2=new JTextArea();
  //滚动条
  JScrollPane jsp;
  //文件操作对象
  EditFile ef=new EditFile();
  //构造函数
  MyMainFrame()
  {
  //绘制界面
  c.setLayout(new BorderLayout());
  jsp= new JScrollPane(txt);
  jsp.setHorizontalScrollBarPolicy(jsp.HORIZONTAL_SCROLLBAR_AS_NEEDED);
  c.add(jsp,BorderLayout.CENTER);
  mainMb.add(fileMenu);
  fileMenu.add(newItem);
  fileMenu.add(openItem);
  fileMenu.add(saveItem);
  fileMenu.add(saveasItem);
  fileMenu.addSeparator();
  fileMenu.add(exitItem);
  mainMb.add(editMenu);
  editMenu.add(findItem);
  editMenu.add(findnextItem);
  editMenu.add(changeItem);
  mainMb.add(typeMenu);
  typeMenu.add(changelineItem);
  setJMenuBar(mainMb);
  //为菜单添加事件监听
  newItem.addActionListener(this);
  openItem.addActionListener(this);
  saveItem.addActionListener(this);
  saveasItem.addActionListener(this);
  exitItem.addActionListener(this);
  findItem.addActionListener(this);
  findnextItem.addActionListener(this);
  changeItem.addActionListener(this);
  changelineItem.addActionListener(this);
  }
  //事件处理函数
  public void actionPerformed(ActionEvent e)
  {
  //建立一个文件操作对象
  EditFile ef=new EditFile();
  //如果点击按钮为新建
  if(e.getActionCommand()=="新建")
  {
  //将文本域置为空
  txt.setText(null);
  //文件名为空
  filename=null;
  }
  //如果点击按钮为打开
  if(e.getActionCommand()=="打开")
  {
  //定义一个文件窗体
  FileDialog openDialog=new FileDialog(this,"打开文件...",FileDialog.LOAD);
  //显示窗体
  openDialog.show();
  //如果返回文件不为空
  if(openDialog.getFile()!=null)
  {
  //获得文件名
  filename=openDialog.getFile();
  //获得文件内容
  txt.setText(ef.OpenFile(openDialog.getFile()));
  }
  }
  //如果点击按钮为保存
  if(e.getActionCommand()=="保存")
  {
  //如果没有文件名
  if(filename==null)
  {
  //定义一个文件窗体
  FileDialog saveDialog=new FileDialog(this,"另存为...",FileDialog.SAVE);
  //显示窗体
  saveDialog.show();
  //如果返回文件不为空
  if(saveDialog.getFile()!=null)
  {
  //获得文件名
  filename=saveDialog.getFile();
  //保存文件
  ef.SaveFile(filename,txt.getText());
  }
  }
  else
  {
  //直接保存文件
  ef.SaveFile(filename,txt.getText());
  }
  }
  //如果点击按钮为另存为
  if(e.getActionCommand()=="另存为")
  {
  //定义一个文件窗体
  FileDialog saveDialog=new FileDialog(this,"另存为...",FileDialog.SAVE);
  //显示窗体
  saveDialog.show();
  //如果返回文件不为空
  if(saveDialog.getFile()!=null)
  {
  //获得文件名
  filename=saveDialog.getFile();
  //保存文件
  ef.SaveFile(filename,txt.getText());
  }
  }
  //如果点击按钮为推出
  if(e.getActionCommand()=="退出")
  {
  //退出
  System.exit(0);
  }
  //如果点击按钮为查找
  if(e.getActionCommand()=="查找")
  {
  //定义一个对话框
  JOptionPane inputdia=new JOptionPane();
  //定义对话框获得查找文本
  findtxt=inputdia.showInputDialog("请输入要查找的文本",null);
  //定义其实坐标
  findtxton=-1;
  findtxtoff=-1;
  //调用查找函数
  find();
  }
  //如果点击按钮为查找下一个
  if(e.getActionCommand()=="查找下一个")
  {
  //调用查找函数
  find();
  }
  //如果点击按钮为替换
  if(e.getActionCommand()=="替换")
  {
  //定义一个对话框
  JOptionPane inputdia=new JOptionPane();
  //获得查找和替换文本
  findtxt=inputdia.showInputDialog("请输入要被替换的文本",null);
  replacetxt=inputdia.showInputDialog("请输入替换后的文本",null);
  //备份内容
  txt2.setText(replacetxt);
  txt2.selectAll();
  txt2.copy();
  //调用查找函数
  find();
  //如果没找到
  if(findtxton==-1&&findtxtoff==-1)
  {
  }
  //如果找到
  else
  {
  //替换
  txt.paste();
  }
  findtxton=-1;
  findtxtoff=-1;
  }
  //如果点击按钮为自动换行
  if(e.getActionCommand()=="自动换行")
  {
  //判断当前状态
  if(changelineItem.isSelected()==true)
  {
  //设置滚动条状态
  jsp.setHorizontalScrollBarPolicy(jsp.HORIZONTAL_SCROLLBAR_NEVER);
  //设置是否换行
  txt.setLineWrap(true);
  }
  else
  {
  jsp.setHorizontalScrollBarPolicy(jsp.HORIZONTAL_SCROLLBAR_AS_NEEDED);
  txt.setLineWrap(false);
  }
  }
  }
  //查找函数
  public void find()
  {
  //定义临时字符串
  String tempstr;
  //查找文本不为空的话
  if(findtxt!=null)
  {
  try
  {
  //进行查找
  tempstr=txt.getText(findtxton+1,(txt.getText().length()-findtxton-1));
  findtxton=findtxton+1+tempstr.indexOf(findtxt);
  }
  catch(Exception e)
  {

  }
  //如果开始位有变化,即找到
  if(findtxton!=-1)
  {
  //设置结束位
  findtxtoff=findtxton+findtxt.length();
  }
  else
  {
  //否则显示没有找到
  findtxtoff=-1;
  JOptionPane.showMessageDialog(null,"没有找到");
  }
  //将找到部分进行选择
  txt.select(findtxton,findtxtoff);
  }
  }
  }

  public class TextEdit
  {
  //主函数
  public static void main(String args[])
  {
  //声明设置主窗体
  MyMainFrame f=new MyMainFrame();
  f.setSize(640,480);
  f.setTitle("文本编辑器");
  //显示主窗体
  f.setVisible(true);

  }
  }

  /*
  JTextArea的自动换行方面的问题
  --------------------------------------------------------------------------------

  如果水平滚动条设置为JSctollpane.
  ,则添加了这种JSctollpane对象的JTextArea将具备换行功能
  是这样吗?

  --------------------------------------------------------------------------------

  JTextArea.setLineWrap(boolean wrap)

  --------------------------------------------------------------------------------

  JTextArea.setLineWrap(boolean wrap)//一般的换行。
  JTextArea.setWrapStyleWorld(boolean world)//以单词边缘为界限分行
  */