JFrame Paint具有屏幕的点击敏感区域

时间:2013-07-27 03:00:39

标签: java swing jframe mouse mouselistener

我正在制作一个程序,我想知道如何在点击时激活JFrame的某些区域,尽管没有按钮,就像你点击图片的右上角四分之一来激活一些东西。

2 个答案:

答案 0 :(得分:2)

创建一个Shape对象列表,以表示要单击的区域:

List<Shape> shapes = new ArrayList<Shape>();

然后你可以在List中添加不同的形状:

areas.add( new Rectangle(5, 5, 10, 10) );

然后你将mouseListener添加到框架中,在mousePressed事件中你可以执行以下操作:

for (Shape shape: shapes)
{
    if (shape.contains(theMousePointFromTheMouseEvent)
        // do something
}

答案 1 :(得分:0)

创建一个JLabel对象并将其图标设置为您要显示的图像。然后将一个鼠标监听器添加到标签对象并实现其所有抽象类,尤其是鼠标单击方法,以执行单击时要执行的操作。然后当您单击JLabel时,您将看到您想要的内容。

以下代码是单击标签时打印“hello”的示例: -

java.awt.event.MouseListener ml = new java.awt.event.MouseListener() {

            @Override
            public void mouseClicked(MouseEvent e) {
                System.out.println("hello");
            }

            @Override
            public void mousePressed(MouseEvent e) {

            }

            @Override
            public void mouseReleased(MouseEvent e) {

            }

            @Override
            public void mouseEntered(MouseEvent e) {

            }

            @Override
            public void mouseExited(MouseEvent e) {

            }
        }; 


       jLabel1.addMouseListener(ml);