Java 无法实现鼠标侦听器
我试图实现鼠标侦听器,但我似乎无法让它工作。我的代码没有任何错误,但当我点击框架时,我无法得到要打印的消息。我曾尝试将HandleClassOne类扩展到viewOne,但这也行不通。有什么想法吗 main类创建一个框架,然后在该框架上创建viewOne的实例Java 无法实现鼠标侦听器,java,oop,mouselistener,Java,Oop,Mouselistener,我试图实现鼠标侦听器,但我似乎无法让它工作。我的代码没有任何错误,但当我点击框架时,我无法得到要打印的消息。我曾尝试将HandleClassOne类扩展到viewOne,但这也行不通。有什么想法吗 main类创建一个框架,然后在该框架上创建viewOne的实例 public class main{ protected static JFrame window; public static void main(String args[]){ window = new JFram
public class main{
protected static JFrame window;
public static void main(String args[]){
window = new JFrame();
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setSize(400,400);
window.setVisible(true);
new viewOne(window);
}
}
viewOne类将面板和标签添加到框架中。它还将鼠标侦听器添加到面板中
public class viewOne {
private static JPanel panel1;
private static JLabel label1;
public viewOne(JFrame frame) {
panel1 = new JPanel();
label1 = new JLabel("View One");
panel1.add(label1);
frame.add(panel1);
panel1.setBackground(Color.red);
frame.validate();
}
public static void mouseAdd() {
HandleClassOne handle = new HandleClassOne();
panel1.addMouseListener(handle);
panel1.addMouseMotionListener(handle);
}
public static void main(String[] args) {
mouseAdd();
}
}
单击viewOne中创建的面板时,HandleClassOne类应打印一条消息
public class HandleClassOne extends main implements MouseListener, MouseMotionListener {
public void mouseClicked(MouseEvent e) {
System.out.println("mouse clicked");
}
}
虽然您已经定义了函数
mouseAdd(…)
,但我没有看到您调用它
Try(在构造函数中)
当然,您需要在设置面板1
后执行此操作
请注意,还有其他问题
main
类中的main
函数中正确调用呈现JFrame
。查阅关于JavaSwing的基本教程,其中讨论了事件调度线程以及不在程序主执行线程中出现的要求viewOne
类中还有一个额外的main
函数,这不是这些东西的连接方式 public viewOne(JFrame frame) {
panel1 = new JPanel();
label1 = new JLabel("View One");
panel1.add(label1);
frame.add(panel1);
panel1.setBackground(Color.red);
mouseAdd();
frame.validate();
}
public viewOne(JFrame frame) {
panel1 = new JPanel();
label1 = new JLabel("View One");
panel1.add(label1);
frame.add(panel1);
panel1.setBackground(Color.red);
mouseAdd();
frame.validate();
}