Java 如何让Jframe通过鼠标点击工作?
如果你熟悉的话,我正在制作一个gridworld中的connect four游戏,但是我的老师绝对没有告诉我们关于鼠标点击的任何内容,并且connect four需要放在我点击的专栏中,但是我不知道要添加什么鼠标侦听器,所以我制作了一个Jframe来完成它,但是我无法让它工作 因此,我需要知道如何使鼠标单击能够打印单击的x和y坐标Java 如何让Jframe通过鼠标点击工作?,java,swing,jframe,mouselistener,gridworld,Java,Swing,Jframe,Mouselistener,Gridworld,如果你熟悉的话,我正在制作一个gridworld中的connect four游戏,但是我的老师绝对没有告诉我们关于鼠标点击的任何内容,并且connect four需要放在我点击的专栏中,但是我不知道要添加什么鼠标侦听器,所以我制作了一个Jframe来完成它,但是我无法让它工作 因此,我需要知道如何使鼠标单击能够打印单击的x和y坐标 公共类ConnectFourWorld扩展世界实现MouseListener { 私人字符串whostrn; 私有布尔gameOver; 私人弦乐冠军; 件X=新件(
公共类ConnectFourWorld扩展世界实现MouseListener
{
私人字符串whostrn;
私有布尔gameOver;
私人弦乐冠军;
件X=新件(“ex”,颜色为白色,颜色为红色);
作品O=新作品(“哦”,颜色。黄色,颜色。蓝色);
位置列1=新位置(5,0);
位置栏2=新位置(5,1);
位置栏3=新位置(5,2);
位置列4=新位置(5,3);
位置列5=新位置(5,4);
位置列6=新位置(5,5);
位置列7=新位置(5,6);
公共世界()
{
超级(新边界网格(6,7));
JFrame=新JFrame();
框架设置尺寸(新尺寸(350300));
frame.addMouseListener((MouseListener)this);
frame.pack();
frame.setVisible(true);
winner=“无赢家”;
whosurn=“X”;
gameOver=false;
setMessage(“欢迎连接四个世界!-点击一个点-”+Whostrn+“,轮到你了”);
}
公共布尔位置单击(位置loc)
{
Grid Grid=getGrid();
if(grid==null)
返回false;
ArrayList reset=新的ArrayList();
reset=grid.getOccupiedLocations();
if(grid.get(loc)!=null)
返回false;
如果(gameOver==true)
{
对于(int i=0;i添加鼠标侦听器
addMouseListener(new MouseListener() {
@Override
public void mouseReleased(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseEntered(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseClicked(MouseEvent arg0) {
System.out.println(arg0.getLocationOnScreen().x);
System.out.println(arg0.getLocationOnScreen().y);
}
});
您必须覆盖GridWorld GUIController类..在构造函数中有一个名为display.addMouseListener()的方法。基本上只需在其中编写代码即可。我相信它们会将您单击的位置存储在变量loc中。知道后非常容易。要获取对象,只需执行parentFrame.getWorld().getGrid().get(loc)…非常直截了当…希望这会有帮助!你几乎已经问过这个问题。一个简单的问题就足够了。你的示例显示了一个附有鼠标器的框架,但似乎这并不是你的游戏的实际附件。世界是什么?我讨厌老师希望你阅读java文档和java教程World在gridworld案例研究中,它只是一个生成BoundedGrid或UnboundGrid的类。您可以在线查找它。我尝试过这样做,但在最后一行添加“EnumBody”时出错。
addMouseListener(new MouseListener() {
@Override
public void mouseReleased(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseEntered(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseClicked(MouseEvent arg0) {
System.out.println(arg0.getLocationOnScreen().x);
System.out.println(arg0.getLocationOnScreen().y);
}
});