0

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

4

2 回答 2

2

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

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

然后您可以将不同的形状添加到列表中:

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

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

for (Shape shape: shapes)
{
    if (shape.contains(theMousePointFromTheMouseEvent)
        // do something
}
于 2013-07-27T03:09:53.687 回答
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);
于 2013-07-27T03:46:36.293 回答