解决方案 »

  1.   

    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.io.BufferedReader;
    import java.io.FileReader;
    import java.io.IOException;import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JMenu;
    import javax.swing.JMenuBar;
    import javax.swing.JMenuItem;
    import javax.swing.JScrollPane;
    import javax.swing.JTextArea;public class TestIo { public void test() {
    JFrame f = new JFrame("Java 数据结构");
    JMenuBar mb = new JMenuBar(); // 菜单栏的实现
    JMenu mt = new JMenu("堆栈");
    JMenuItem bt = new JMenuItem("显示代码");
    mt.add(bt);
    JMenu ml = new JMenu("队列");
    JMenu mp = new JMenu("排序");
    JMenuItem mpc = new JMenuItem("插入排序");
    JMenuItem mpm = new JMenuItem("冒泡排序");
    JMenuItem mpx = new JMenuItem("选择排序");
    JMenu mc = new JMenu("查找");
    JMenuItem mcs = new JMenuItem("顺序查找");
    JMenuItem mce = new JMenuItem("二分查找");
    JMenuItem mcsy = new JMenuItem("索引查找");
    JMenu md = new JMenu("递归算法");
    JMenuItem mdh = new JMenuItem("汉诺塔");
    JMenuItem mdf = new JMenuItem("fibonacci 数列");
    JMenuItem mdp9 = new JMenuItem("Paga153 6-9");
    JMenuItem mdp10 = new JMenuItem("Paga153 6-10");
    JMenuItem mdp11 = new JMenuItem("Paga153 6-11");
    JMenuItem mdp12 = new JMenuItem("Paga153 6-12");
    JTextArea txt = new JTextArea();
    bt.addActionListener(new Monitor(txt));
    f.setJMenuBar(mb); // 为窗口添加菜单栏
    // 把对应的菜单弹出窗口添加到菜单栏中
    mb.add(mt);
    mb.add(ml);
    mb.add(mp);
    mb.add(mc);
    mb.add(md);
    // 设置排序菜单栏
    mp.add(mpc);
    mp.add(mpm);
    mp.add(mpx);
    // 设置查找排序菜单栏
    mc.add(mcs);
    mc.add(mce);
    mc.add(mcsy);
    // 设置递归算法菜单栏
    md.add(mdh);
    md.add(mdf);
    md.addSeparator();
    md.add(mdp9);
    md.add(mdp10);
    md.add(mdp11);
    md.add(mdp12); JLabel mq = new JLabel("代码显示区:"); // 创建一个标签,标识为:代码显示区
    mq.setBounds(10, 20, 50, 30); // 设置标签的大小及显示位置
    // 申明一个文本文件 JScrollPane jsp = new JScrollPane(txt); // 将txt文本添加到jsp
    jsp.setBounds(70, 25, 300, 600); // 设置滚动面板的位置及大小
    f.add(jsp); // 将滚动面板添加到窗口中
    f.add(mq);
    f.setSize(650, 700); // 设置窗口的大小
    f.setLocationRelativeTo(null); // 设置窗口居中出现
    f.setVisible(true);
    } public static void main(String args[]) {
    TestIo tstTo = new TestIo();
    tstTo.test();
    } class Monitor implements ActionListener {
    public JTextArea txt = null;
    public String s1 = ""; //把txt传进来
    public Monitor(JTextArea txt) {
    System.out.println(txt);
    this.txt = txt;
    } public void actionPerformed(ActionEvent e) {
    try {
    BufferedReader br = new BufferedReader(new FileReader(
    "F:\\123.txt")); // 读取字符流
    String s = "";
    while ((s = br.readLine()) != null) { // 一行一行的读取br的文件
    s1 = s1 + s + "\n";
    }
    br.close();
    } catch (IOException e1) {
    e1.printStackTrace();
    }
    txt.setText(s1);
    }
    }}