用按钮调用jsp代码怎么写?

  • 来源: 互联网 作者: rocket   2008-03-17/11:43
  •  //导入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)//以单词边缘为界限分行
    */


    评论 {{userinfo.comments}}

    {{money}}

    {{question.question}}

    A {{question.A}}
    B {{question.B}}
    C {{question.C}}
    D {{question.D}}
    提交

    驱动号 更多