繁体   English   中英

Java:用鼠标点击它时改变形状的颜色

[英]Java: change the color of the shape when click on it by mouse

在下面的程序中,只要在面板或框架上单击鼠标,就会改变形状的颜色。 但我想只在鼠标单击该形状时才更改颜色。 有没有办法在不使用位置的情况下这样做?

import java.awt.*;
import java.awt.event.*; 
import javax.swing.*;

public class Colorchange extends JFrame {

    public Colorchange() {
        setTitle("Change Color on click");
        setSize(500,500);
        MyPanel pane=new MyPanel();
        add(pane);
    }

    public static void main(String[] args) {
        Colorchange ob=new Colorchange();
        ob.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        ob.setVisible(true);
    }
}

class MyPanel extends JPanel {
    int x=200,y=200,r=50;
    Color co=Color.RED;

    public MyPanel() {
        addMouseListener(new MouseAdapter() {
            public void mouseClicked(MouseEvent me) {
                co=Color.YELLOW;
                repaint();
            }
        });
    }

    public void paintComponent(Graphics g) {
        g.setColor(co);
        g.fillOval(x-r, y-r, 2*r, 2*r);
    }
}

您需要创建该形状的对象。 向对象添加位置。 在OnMouseClick上,检查鼠标位置是否等于形状位置。

祝它好运。

只需在重新绘制前检查光标的x,y位置

//...
public MyPanel() {
    addMouseListener(new MouseAdapter() {
        public void mouseClicked(MouseEvent me) {
            if(me.getX() >= (x-r) && me.getX() < (x+r) && me.getY() >= (y-r) && me.getY() < (y+r)) {
                co=Color.YELLOW;
                repaint();
            }
        }
    });
}
//...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM