【问题标题】:Adding a mouse listener to a rectangle in java在java中将鼠标侦听器添加到矩形
【发布时间】:2011-09-03 23:21:52
【问题描述】:

正如标题所示,我正在尝试将动作侦听器添加到窗口的基本形状中。我想知道这是否可能?尝试添加侦听器时出现错误。

public static void main(String args[]) {
    JFrame frame = new Main();
    frame.setSize(300, 200);
    frame.setVisible(true);
    frame.setBackground(Color.BLUE);
}

Rectangle2D rect = new Rectangle2D.Double(60, 70, 120, 80);

public void paint(Graphics g) {
    Graphics2D g1 = (Graphics2D)g;
    g1.draw(rect);
    g1.setPaint(Color.yellow);
    g1.fill(rect);
}

Handlerclass handle = new Handlerclass();
rect.addMouseListener(handle);

public class Handlerclass implements MouseListener{
    public void mouseClicked (MouseEvent e){
    }
}

【问题讨论】:

  • 不要在 JFrame 的paint 方法中直接绘制。而是绘制由 JFrame 的 contentPane 或 JFrame 的 contentPane 持有的 JPanel,并在其 paintComponent 方法中进行绘制。

标签: java swing listener mouselistener


【解决方案1】:

您不能向该对象添加鼠标侦听器。如果您尝试检测其中的鼠标点击,那么您希望将鼠标侦听器添加到您要在其中绘制形状的任何 Swing 容器,然后使用 contains...intersects... 方法之一。

如果有机会,请查看Rectangle2D 的文档。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-19
    • 2023-03-14
    • 1970-01-01
    • 2014-08-26
    • 2012-08-01
    • 2011-12-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多