首页 > 解决方案 > 用 MouseListener 覆盖方法

问题描述

我正在创建一个使用 Swing 绘制面部的 Java 程序,然后我使用 MouseListener 响应鼠标单击以使其中一只眼睛闪烁。如何使用 MouseListener 让其中一只眼睛眨眼?方法paint(Graphics g) 只能使用该名称创建一次,所以如果我想重复它并在MouseListener 代码下编辑它,其中一只眼睛变成一条闪烁的线,我该怎么做?

到目前为止,这是我的代码:

import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

public class Sans extends JPanel {

public void paint(Graphics g) {

    super.paintComponent(g);
    setSize(650, 650);
    g.drawOval(110, 250, 500, 275);
    g.setColor(new Color(226, 222, 217));
    g.fillOval(110, 250, 500, 275);

    g.drawOval(475, 300, 75, 75);
    g.setColor(new Color(74, 199, 226));
    g.fillOval(475, 300, 75, 75);

    g.drawOval(505, 330, 15, 15);
    g.setColor(new Color(0, 0, 0));
    g.fillOval(505, 330, 15, 15);

    g.drawOval(175, 300, 75, 75);
    g.setColor(new Color(0, 0, 0));
    g.fillOval(175, 300, 75, 75);

    g.drawOval(205, 330, 15, 15);
    g.setColor(new Color(232, 255, 243));
    g.fillOval(205, 330, 15, 15);

    g.drawOval(350, 375, 20, 50);
    g.setColor(new Color(0, 0, 0));
    g.fillOval(350, 375, 20, 50);

    g.drawArc(290, 360, 150, 150, 180, 180);
    g.setColor(new Color(255, 255, 255));
    g.fillArc(290, 360, 150, 150, 180, 180);
}


public static void main(String[] args) {

    Font font = new Font("TimesRoman", Font.PLAIN, 15);

    JFrame frame = new JFrame();
    Sans spook = new Sans();
    frame.add(spook);
    frame.setSize(750, 750);

    frame.setTitle("I'VE GOTTEN A TON OF WORK DONE TODAY. A SKELE-TON.");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setLocationRelativeTo(null);
    frame.setResizable(false);
    frame.setVisible(true);
}

public class BlinkHandler implements MouseListener {



    public void mouseClicked(MouseEvent e) {

    }


    public void mousePressed(MouseEvent e) {

    }


    public void mouseReleased(MouseEvent e) {

    }


    public void mouseEntered(MouseEvent e) {

    }

    public void mouseExited(MouseEvent e) {

    }
}

}

标签: javaswingmouselistener

解决方案


推荐阅读