gpt4 book ai didi

java - MouseMotion 监听器不工作

转载 作者:行者123 更新时间:2023-11-29 05:18:30 24 4
gpt4 key购买 nike

我正在编写一段代码来添加和定义一个 mousemotion 监听器,但编译器向以下代码报告错误:“类 CustomListener 是公共(public)的,应该在名为 CustomListener.java 的文件中声明公共(public)类 CustomListener 实现 MouseMotionListener { ^1 个错误“我不知道这是什么意思。

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;


public class TetrisGUI implements ActionListener{

JButton quit = new JButton();
JLabel label1 = new JLabel();
JLabel label2 = new JLabel();
JLabel label3 = new JLabel();
JPanel mainArea = new JPanel();

public static void main(String[] args) {

TetrisGUI gui = new TetrisGUI();
gui.go();
}

public void go() {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
quit = new JButton("QUIT");
label1 = new JLabel("Level: 1");
label2 = new JLabel("Lines: 0");
label3 = new JLabel("Score: 0");

quit.addActionListener(this);
mainArea.addMouseMotionListener(new CustomListener(){});

MyDrawPanel drawPanel = new MyDrawPanel();

frame.getContentPane().add(quit);
frame.getContentPane().add(label1);
frame.getContentPane().add(label2);
frame.getContentPane().add(label3);
frame.getContentPane().add(mainArea);
frame.getContentPane().add(BorderLayout.CENTER,drawPanel);

label1.setSize(100,200);
label1.setLocation(310,60);
label2.setSize(100,200);
label2.setLocation(310,110);
label3.setSize(100,200);
label3.setLocation(310,160);
mainArea.setSize(250,500);
mainArea.setLocation(20,50);
quit.setSize(100,40);
quit.setLocation(300,310);
frame.setSize(400,500);
frame.setVisible(true);
mainArea.setBackground(new Color(0,0,0,0));
mainArea.setVisible(true);
}

public void actionPerformed(ActionEvent event) {
System.exit(0);
}


}

class MyDrawPanel extends JPanel {
public void paintComponent(Graphics g) {
g.setColor(Color.black);
g.drawRect(20,50,250,500);//Main Area
g.drawRect(300,50,100,70);//NextShape

g.drawRect(145,80,25,25);//Tian Block
g.drawRect(145,105,25,25);
g.drawRect(120,80,25,25);
g.drawRect(120,105,25,25);
Color deepGreen = new Color(51,138,52);
g.setColor(deepGreen);
g.fillRect(121,81,24,24);//Tian Block
g.fillRect(121,106,24,24);
g.fillRect(146,81,24,24);
g.fillRect(146,106,24,24);

g.setColor(Color.black);
g.drawRect(245,525,25,25);//Right bottom
g.drawRect(220,525,25,25);
g.drawRect(195,525,25,25);
g.drawRect(170,525,25,25);
g.drawRect(245,500,25,25);
g.drawRect(245,475,25,25);
g.drawRect(220,500,25,25);
g.drawRect(195,500,25,25);
Color deepBlue = new Color(15,66,148);
g.setColor(deepBlue);
g.fillRect(246,526,24,24);
g.fillRect(221,526,24,24);
g.fillRect(246,501,24,24);
g.fillRect(246,476,24,24);
Color brightYellow = new Color(252,238,33);
g.setColor(brightYellow);
g.fillRect(196,526,24,24);
g.fillRect(171,526,24,24);
g.fillRect(196,501,24,24);
g.fillRect(221,501,24,24);

//NextShape Blocks
g.setColor(Color.black);
g.drawRect(360,60,25,25);
g.drawRect(335,85,25,25);
g.drawRect(360,85,25,25);
g.drawRect(310,85,25,25);
Color deepRed = new Color(227,23,36);
g.setColor(deepRed);
g.fillRect(361,61,24,24);
g.fillRect(336,86,24,24);
g.fillRect(361,86,24,24);
g.fillRect(311,86,24,24);
}
}

public class CustomListener implements MouseMotionListener {
public void mousePressed(MouseEvent me){}
public void mouseReleased(MouseEvent me){}
public void mouseClicked(MouseEvent me){}
public void mouseEntered(MouseEvent me){

}
public void mouseExited(MouseEvent me){}
}

最佳答案

在 Java 中,每个公共(public)类都必须在单独的文件中定义。将类“CustomListener”移动到具有相同名称的不同文件或只删除 public 修饰符。

关于java - MouseMotion 监听器不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25672489/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com