gpt4 book ai didi

Java 鼠标监听器不工作

转载 作者:行者123 更新时间:2023-12-02 00:41:35 25 4
gpt4 key购买 nike

当鼠标在 RenderCanvas 类的对象内按下时,我试图让控制台打印,该类扩展 JPanel。但是,当我在窗口中按下鼠标时,我没有收到任何反馈。关于我可以更改哪些内容以使 MouseListener 正常工作,有什么建议吗?

这是我的代码:

RenderCanvas 类:

import java.awt.event.MouseEvent;
import java.util.ArrayList;
import java.util.List;
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JPanel;
import java.awt.event.MouseAdapter;


public class RenderCanvas extends JPanel {
private List<Rect> rectangles = new ArrayList<Rect>();
private List<Line> lines = new ArrayList<Line>();

public void renderCanvas() {
addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
addRect(0, 0, 200, 200, Color.ORANGE);
System.out.println(e);
}
});
}

public void paintComponent(Graphics g) {
for (Rect rectangle : rectangles) {
rectangle.draw(g);
}
for (Line line : lines) {
line.draw(g);
}
}

public void addRect(int x, int y, int width, int height, Color color) {
Rect rectangle = new Rect(x, y, width, height, color);
this.rectangles.add(rectangle);
}

public void addLine(int y, int width, Color color) {
Line line = new Line(y, width, color);
this.lines.add(line);
}
}

主类:

import javax.swing.*;
import java.awt.*;
import java.util.Random;

public class Main {
public static void main(String[] args) {
JFrame window = new JFrame("Window");
RenderCanvas canvas = new RenderCanvas();
window.setContentPane(canvas);
window.setSize(640, 360);
window.setLocation(640, 360);
window.setVisible(true);
}
}

预先感谢您的帮助!

最佳答案

public void renderCanvas() 不是构造函数。改变

public void renderCanvas()

public RenderCanvas()

注意大写的“R”并且没有“void”返回类型

关于Java 鼠标监听器不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6222308/

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