package TestFrame;import java.awt.*;
import java.awt.event.*;public class TestFrame { /**
 * @param args
 */
public static void main(String[] args) {
myFrame f = new myFrame("custome"); }}class myFrame extends Frame { private static final long serialVersionUID = 1744809883291099336L; TextArea ta1, ta2; myFrame(String name) { Panel p1 = new Panel(); Panel p2 = new Panel();
Panel p3 = new Panel();
Button b1 = new Button("提交"); ta1 = new TextArea();
ta2 = new TextArea();
p1.add(ta1);
p2.add(ta2);
p3.add(b1);
setLayout(new GridLayout(3, 1));
add(p1);
add(p2);
add(p3);
b1.addActionListener(new ButtonMonitor()); setLocation(300, 300);
setBackground(new Color(200, 200, 200));
setSize(500, 500);
setVisible(true); class ButtonMonitor implements ActionListener { public void actionPerformed(ActionEvent arg0) {
ta1.setText(ta2.getText()); } }

this.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) {
setVisible(false);
System.exit(-1);
}
}); }}各位老大看下我加载button上的那个监听器是不是出问题了,报错为:
Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
ButtonMonitor cannot be resolved to a type at TestFrame.myFrame.<init>(TestFrame.java:42)
at TestFrame.TestFrame.main(TestFrame.java:12)谢谢了

解决方案 »

  1.   


    import java.awt.*;
    import java.awt.event.*;public class TestFrame {    /**
         * @param args
         */
        public static void main(String[] args) {
            myFrame f = new myFrame("custome");    }}class myFrame extends Frame {    private static final long serialVersionUID = 1744809883291099336L;    TextArea ta1, ta2;    myFrame(String name) {        Panel p1 = new Panel();        Panel p2 = new Panel();
            Panel p3 = new Panel();
            Button b1 = new Button("提交");        ta1 = new TextArea();
            ta2 = new TextArea();
            p1.add(ta1);
            p2.add(ta2);
            p3.add(b1);
            setLayout(new GridLayout(3, 1));
            add(p1);
            add(p2);
            add(p3);
            b1.addActionListener(new ButtonMonitor());        setLocation(300, 300);
            setBackground(new Color(200, 200, 200));
            setSize(500, 500);
            setVisible(true);        
            this.addWindowListener(new WindowAdapter() {            public void windowClosing(WindowEvent e) {
                    setVisible(false);
                    System.exit(-1);
                }
            });    }
        
        class ButtonMonitor implements ActionListener {        public void actionPerformed(ActionEvent arg0) {
                ta1.setText(ta2.getText());        }    }}
      

  2.   

    package TestFrame;import java.awt.*;
    import java.awt.event.*;public class TestFrame { public static void main(String[] args) {
    myFrame f = new myFrame("custome"); }}class myFrame extends Frame { private static final long serialVersionUID = 1744809883291099336L; TextArea ta1, ta2;
    static String name; myFrame(String name) {
    super(name);
            name=name;
    Panel p1 = new Panel(); Panel p2 = new Panel();
    Panel p3 = new Panel();
    Button b1 = new Button("提交"); ta1 = new TextArea();
    ta2 = new TextArea();
    p1.add(ta1);
    p2.add(ta2);
    p3.add(b1);
    setLayout(new GridLayout(3, 1));
    add(p1);
    add(p2);
    add(p3);
    b1.addActionListener(new ButtonMonitor()); setLocation(300, 300);
    setBackground(new Color(200, 200, 200));
    setSize(500, 500);
    setVisible(true); this.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) {
    setVisible(false);
    System.exit(-1);
    }
    }); }
    class ButtonMonitor implements ActionListener { public void actionPerformed(ActionEvent arg0) {
    ta1.setText(name+ta2.getText());
    ta2.setText(null); } }}
    谢谢上面的老大。呵呵。我在MyFrame 声明了一个全局变量name,然后在构造函数里对它进行了赋值,可为什么在内部类ButtonMonitor中name的值依旧为空呢
      

  3.   

    这行有问题,name=name;
    要这样写:this.name=name;