求怎么实现,我点击JMenuItem mt = new JMenuItem("显示代码");
就能将我的D:\\java\\Test1\\45678.txt"这里面的文件显示在JScrollPane jsp = new JScrollPane(); 这个滚动文本中!
我就差事件监听没有实现,求哪位大神,大哥,帮帮忙
新手,暑假自学中! 求指教
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.io.*;
import java.util.*;
import javax.swing.event.*;
public class TestIo {
public static void main(String args[]) {
String s1 = null;
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");
bt.addActionListener(new Monitor());
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);
}
}
class Monitor implements ActionListener {
public String s1;
JTextArea txt = null;
public void actionPerformed(ActionEvent e) {
System.out.println("asdfasd");
try {
BufferedReader br = new BufferedReader(new FileReader("D:\\java\\Test1\\45678.txt")); //读取字符流
String s = null;
while((s = br.readLine()) != null) { //一行一行的读取br的文件
s1 = s1 + s +"\n";
}
br.close();
} catch (IOException e1) {
e1.printStackTrace();
}
txt = new JTextArea(s1,10,10); //将s1字符串存入Txt中
}
}
------解决方案--------------------
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("顺序查找");