Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 穆塞利斯滕纳-穆塞利克德_Java_Mouselistener - Fatal编程技术网

Java 穆塞利斯滕纳-穆塞利克德

Java 穆塞利斯滕纳-穆塞利克德,java,mouselistener,Java,Mouselistener,经过两个小时的搜索,我真的找不出为什么我的代码不起作用,所以我想知道你是否可以帮忙 我只想在按下按钮时看到“点击”。我的类MouseInput实现了mouseistener,在方法mouseClicked中,我得到的是system.out…(“单击”) 鼠标输入代码: `import java.awt.event.MouseEvent; import java.awt.event.MouseListener; public class MouseInput implements MouseL

经过两个小时的搜索,我真的找不出为什么我的代码不起作用,所以我想知道你是否可以帮忙

我只想在按下按钮时看到“点击”。我的类
MouseInput
实现了
mouseistener
,在方法
mouseClicked
中,我得到的是
system.out…(“单击”)

鼠标输入代码

`import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;


public class MouseInput implements MouseListener {

@Override
public void mouseClicked(MouseEvent arg0) {
    // TODO Auto-generated method stub
    System.out.println("Click");
}

@Override
public void mouseEntered(MouseEvent arg0) {
    // TODO Auto-generated method stub

}

@Override
public void mouseExited(MouseEvent arg0) {
    // TODO Auto-generated method stub

}

@Override
public void mousePressed(MouseEvent arg0) {
    // TODO Auto-generated method stub

}

@Override
public void mouseReleased(MouseEvent arg0) {
    // TODO Auto-generated method stub

}

}`
import java.awt.Canvas;
import java.awt.Color;
import java.awt.Dimension;

import javax.swing.JFrame;


public class Display {
private JFrame frame;
private Canvas canvas;
private String title;
private int width,height;


public Display(String title,int width,int height){
    this.width = width;
    this.height=height;
    this.title=title;
    CreateDisplay();
}
public void CreateDisplay(){
    frame = new JFrame(title);
    canvas = new Canvas();
    frame.setSize(width,height);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setVisible(true);
    frame.setFocusable(false);
    frame.setResizable(false);
    frame.setLocationRelativeTo(null);

    canvas.setPreferredSize(new Dimension(width,height));
    canvas.setMaximumSize(new Dimension(width,height));
    canvas.setMinimumSize(new Dimension(width,height));
    canvas.setBackground(Color.WHITE);
    frame.add(canvas);
    frame.pack();

}
public Canvas getCanvas(){
    return canvas;
}
public JFrame getFrame(){
    return frame;
}
}
对于显示类

`import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;


public class MouseInput implements MouseListener {

@Override
public void mouseClicked(MouseEvent arg0) {
    // TODO Auto-generated method stub
    System.out.println("Click");
}

@Override
public void mouseEntered(MouseEvent arg0) {
    // TODO Auto-generated method stub

}

@Override
public void mouseExited(MouseEvent arg0) {
    // TODO Auto-generated method stub

}

@Override
public void mousePressed(MouseEvent arg0) {
    // TODO Auto-generated method stub

}

@Override
public void mouseReleased(MouseEvent arg0) {
    // TODO Auto-generated method stub

}

}`
import java.awt.Canvas;
import java.awt.Color;
import java.awt.Dimension;

import javax.swing.JFrame;


public class Display {
private JFrame frame;
private Canvas canvas;
private String title;
private int width,height;


public Display(String title,int width,int height){
    this.width = width;
    this.height=height;
    this.title=title;
    CreateDisplay();
}
public void CreateDisplay(){
    frame = new JFrame(title);
    canvas = new Canvas();
    frame.setSize(width,height);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setVisible(true);
    frame.setFocusable(false);
    frame.setResizable(false);
    frame.setLocationRelativeTo(null);

    canvas.setPreferredSize(new Dimension(width,height));
    canvas.setMaximumSize(new Dimension(width,height));
    canvas.setMinimumSize(new Dimension(width,height));
    canvas.setBackground(Color.WHITE);
    frame.add(canvas);
    frame.pack();

}
public Canvas getCanvas(){
    return canvas;
}
public JFrame getFrame(){
    return frame;
}
}

我认为问题可能出在
display.getFrame().addMouseListener(mouseInput)
:我假设
display.getFrame()
返回扩展
java.awt.Component
的类的实例;根据,
addMouseListener

添加指定的鼠标侦听器以从此组件接收鼠标事件


我认为按钮上的事件不是来自您在其上注册侦听器的组件的事件:您可以尝试在画布实例而不是框架实例上注册侦听器吗?事件可能来自画布,而不是框架…

首先,您可以使用内联鼠标适配器,而不是扩展鼠标侦听器,并且需要为鼠标代码创建单独的文件

第二,如果你想观察你的按钮上的点击,把监听器添加到你的按钮上

    yourJButton.addMouseListener( new MouseAdapter()
    {
        @Override
        public void mouseClicked( MouseEvent e )
        {
            {
                 //do stuff
            }
        }
    });

您能提供
鼠标输入的代码吗?我找不到它,它可能对识别问题很有用……当然,我试图编译您的代码,但它似乎使用了我找不到的
Display
类(在JDK 10上编译)…现在这应该是所有,但很抱歉没有把它全部张贴在一起,谢谢你的回答哦,你一定是天才:谢谢你的回答…很高兴能帮上忙;-)!