java - 用 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) {
}
}
}
解决方案
推荐阅读
- awk - 使用 sed 或 awk 将部分字符串替换为变量
- javascript - 如何解决windows和mac之间textarea字段上的不同表情符号
- java - 自定义时间格式方法的问题
- graphene-python - 如何将 NonNull 设置为连接类中的节点和边?
- java - APCSP 创建任务问题 - 方法在被调用后结束程序
- javascript - 滚动到页面或div底部时如何运行函数?
- javascript - 尝试重写已弃用的 jquery 函数 fn.click()
- javascript - VueJS 从另一个方法访问变量
- wordpress - 如何从免费的 getbutton.io 中删除品牌?
- c++ - 显式调用析构函数时对象不会被销毁