java编写程序,提示说20行有问题


package com.task02;

import java.awt.*;
import java.awt.event.*;
public class WelcomeGUL {
        static Frame f=new Frame("Welcome GUL");
        static Label lb1=new Label("欢迎进入java的图形用户界面!");
        static Label lb2=new Label("在这里显示按钮事件描述");
        static Button b1=new Button("单击我");
        static Button b2=new Button("退出");
    public static void main(String[] args) {
    f.setSize(200,200);
    f.setLayout(new FlowLayout());
    f.add(lb1);
    f.add(lb2);
    f.add(b1);
    f.add(b2);
    b1.addMouseListener(new ButtonlHandler());
    b2.addActionListener(new Button2Handler());
    f.setVisible(true);
}
class Button1Handler implements MouseListener{
    public void mouseClicked(MouseEvent e) {
    WelcomeGUL.lb2.setText("已单击鼠标!");
    }
    public void mouseEntered(MouseEvent e) {
    WelcomeGUL.lb2.setText("已进入按钮上方!");
    }
    public void mouseExited(MouseEvent e) {
    WelcomeGUL.lb2.setText("已离开按钮上方!");
    }
    public void mousePressed(MouseEvent e) {
    WelcomeGUL.lb2.setText("已按下按钮!");
    }
    public void mouseReleased(MouseEvent e) {
    }
}
class Button2Handler implements ActionListener{
   public void actionPerformed(ActionEvent e) {
     System.exit(0);
    }
}
}

Button1Handler 是普通类的话,就定义在主类外面。静态内部类的话,就用static修饰。

import java.awt.*;
import java.awt.event.*;
public class WelcomeGUL {
    static Frame f=new Frame("Welcome GUL");
    static Label lb1=new Label("欢迎进入java的图形用户界面!");
    static Label lb2=new Label("在这里显示按钮事件描述");
    static Button b1=new Button("单击我");
    static Button b2=new Button("退出");
    public static void main(String[] args) {
        f.setSize(200,200);
        f.setLayout(new FlowLayout());
        f.add(lb1);
        f.add(lb2);
        f.add(b1);
        f.add(b2);
        b1.addMouseListener(new Button1Handler());
        b2.addActionListener(new Button2Handler());
        f.setVisible(true);
    }
    
}
class Button1Handler implements MouseListener{
    public void mouseClicked(MouseEvent e) {
        WelcomeGUL.lb2.setText("已单击鼠标!");
    }
    public void mouseEntered(MouseEvent e) {
        WelcomeGUL.lb2.setText("已进入按钮上方!");
    }
    public void mouseExited(MouseEvent e) {
        WelcomeGUL.lb2.setText("已离开按钮上方!");
    }
    public void mousePressed(MouseEvent e) {
        WelcomeGUL.lb2.setText("已按下按钮!");
    }
    public void mouseReleased(MouseEvent e) {
    }
}
class Button2Handler implements ActionListener{
    public void actionPerformed(ActionEvent e) {
        System.exit(0);
    }
}

静态内部类

import java.awt.*;
import java.awt.event.*;
public class WelcomeGUL {
    static Frame f=new Frame("Welcome GUL");
    static Label lb1=new Label("欢迎进入java的图形用户界面!");
    static Label lb2=new Label("在这里显示按钮事件描述");
    static Button b1=new Button("单击我");
    static Button b2=new Button("退出");
    public static void main(String[] args) {
        f.setSize(200,200);
        f.setLayout(new FlowLayout());
        f.add(lb1);
        f.add(lb2);
        f.add(b1);
        f.add(b2);
        b1.addMouseListener(new Button1Handler());
        b2.addActionListener(new Button2Handler());
        f.setVisible(true);
    }
    static class Button1Handler implements MouseListener{
        public void mouseClicked(MouseEvent e) {
            WelcomeGUL.lb2.setText("已单击鼠标!");
        }
        public void mouseEntered(MouseEvent e) {
            WelcomeGUL.lb2.setText("已进入按钮上方!");
        }
        public void mouseExited(MouseEvent e) {
            WelcomeGUL.lb2.setText("已离开按钮上方!");
        }
        public void mousePressed(MouseEvent e) {
            WelcomeGUL.lb2.setText("已按下按钮!");
        }
        public void mouseReleased(MouseEvent e) {
        }
    }
    static class Button2Handler implements ActionListener{
        public void actionPerformed(ActionEvent e) {
            System.exit(0);
        }
    }
}

img


这个去掉试试

static 方法里只能用static变量

b1.addMouseListener(new ButtonlHandler()); 里面的名字写错了 Button1Handler

在main方法中直接调用内部类要修饰为static
static class Button1Handler implements MouseListener{}
static class Button2Handler implements MouseListener{}