在java中怎么确定鼠标点击到了一个圆的范围之内中,并能返回一个特定的数字
3个回答
展开全部
我来帮你,JDK1.6 以上:
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Shape;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.geom.Ellipse2D;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
final Shape cycle =new Ellipse2D.Double(10,10,100,100);
final JFrame f=new JFrame();
f.setDefaultCloseOperation(3);
f.setSize(300,300);
JLabel l=new JLabel(){
private static final long serialVersionUID = 5045688487186402437L;
public void paint(Graphics g){
g.setColor(Color.red);
((java.awt.Graphics2D)g).draw(cycle);
}
};
l.addMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent e){
if(cycle.contains(e.getPoint()))
f.setTitle(String.format("In cycle. x:%d y:%d",e.getX(),e.getY()));
else
f.setTitle(null);
}
});
f.add(l);
f.setVisible(true);
}
}
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Shape;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.geom.Ellipse2D;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
final Shape cycle =new Ellipse2D.Double(10,10,100,100);
final JFrame f=new JFrame();
f.setDefaultCloseOperation(3);
f.setSize(300,300);
JLabel l=new JLabel(){
private static final long serialVersionUID = 5045688487186402437L;
public void paint(Graphics g){
g.setColor(Color.red);
((java.awt.Graphics2D)g).draw(cycle);
}
};
l.addMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent e){
if(cycle.contains(e.getPoint()))
f.setTitle(String.format("In cycle. x:%d y:%d",e.getX(),e.getY()));
else
f.setTitle(null);
}
});
f.add(l);
f.setVisible(true);
}
}
展开全部
用程序判断。。。。
先要保存这个圆的方程。然后当鼠标点击窗体时,把X,Y轴代入这个方程中,判断是否在圆内。
先要保存这个圆的方程。然后当鼠标点击窗体时,把X,Y轴代入这个方程中,判断是否在圆内。
追问
具体怎么实施呢
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把圆作为一个组件,加上mouselistener监听,在click方法中写入你要做的事
追问
求具体
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询