我正在制作一个程序,我想知道如何使 JFrame 的某些区域在单击时激活某些东西,尽管没有按钮,就像您单击图片的右上角来激活某些东西一样。
问问题
671 次
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 回答