0

以下のプログラムでは、パネルまたはフレームをマウスでクリックすると、形状の色が変更されます。しかし、マウスがその形状をクリックした場合にのみ色を変更したいと思います。位置情報を使わずにこれを行う方法はありますか?

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);
    }
}
4

2 に答える 2

1

その形状のオブジェクトを作成する必要があります。オブジェクトに場所を追加します。OnMouseClick で、マウスの位置が図形の位置と等しいかどうかを確認します。

頑張ってください。

于 2013-10-28T20:53:36.973 に答える