我正在制作一个程序,我想知道如何在点击时激活JFrame的某些区域,尽管没有按钮,就像你点击图片的右上角四分之一来激活一些东西。
答案 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);