检查每个按钮的位置

时间:2015-07-20 17:13:29

标签: java user-interface button

我有一个包含81个按钮的框架,假设所有按钮都没有名称,大小相等,并且都是自动设置的。因此,当我点击一个时,我想知道哪个被点击了。如果我使用一个实现MouseListener并使用此方法的类

mouseClicked(MouseEvent e){
temp[0]= e.getX();
temp[1]= e.getY();
}

如何查看这些坐标? 我是否必须将每个按钮设置为自己的位置才能执行此操作?

1 个答案:

答案 0 :(得分:0)

我相信这就是你要找的东西。

    public static final int BUTTONS_WIDTH_COUNT = 9;
    public static final int BUTTONS_HEIGHT_COUNT = 9;
    public static final Button[][] BUTTONS = new Button[BUTTONS_WIDTH_COUNT][BUTTONS_HEIGHT_COUNT]
    ...

    // I'll assume that the buttons are taking up the entire frame so no offsets are taken into account
    frame.addMouseListener(
        new MouseAdaptor() {
            mouseClicked(MouseEvent e) {
            // The X Y coordinates are relative to the component so
            int frameWidth = frame.getBounds().getWidth();
            int frameHeight = frame.getBounds().getHeight();

            Button buttonClicked = buttons[e.getX()/(frameWidth/BUTTONS_WIDTH_COUNT)][e.getY()/(frameHeight/BUTTONS_HEIGHT_COUNT)];
        }
    }

编辑:实际上,将相同的MouseAdaptor分配给所有按钮并使用e.getSource()知道哪个按钮正在侦听器中调用会更好。