【问题标题】:ChessBoard X and Y coordinates into array棋盘 X 和 Y 坐标成数组
【发布时间】:2015-04-09 22:46:44
【问题描述】:

我试图将棋盘的 x 和 y 坐标指向特定的数组值。例如,x:145 y:347 应该指向我棋盘上的 [3,1]。棋盘的大小是 460 x 460,但我不知道如何计算。数组是8×8,和棋盘一样。

代码:

public Container c;
c = getContentPane();
setBounds(100,75,460,460);
public JPanel pnlMain = new JPanel(new GridLayout(2, 1));
pnlMain.setBounds(2, 2, 460, 860);
c.add(pnlMain);

public void MousePressed(MouseEvent e){
    if(e.getX() < 460 && e.getY() < 460){
        int x = e.getX() / 57;
        int y = e.getY() / 175; 
    }
}

调试时我没有得到正确的数组位置。

【问题讨论】:

  • 你的意思是e.getY() / 175
  • @Alejandro 是的对不起

标签: java arrays jpanel mouseevent containers


【解决方案1】:

既然你说你的棋盘是 460x460 它应该是:

if(e.getX() < 460 && e.getY() < 460){
    int x = e.getX() / 57;
    int y = e.getY() / 57; 
}

【讨论】:

  • 我也这么认为,但是如果我迈出第一步,我在 145,347 处拿走我的一个棋子,145/57 很好,但 347/57 给我 6,这是其他玩家片。我假设棋盘的左上角是 0,0。除非有办法让左下角被认为是 0,0?
  • 你确定左上角是0,0吗?为鼠标单击放置一个 System.out.print 并确保。
  • 当我点击左上角时刚刚检查得到 8,4。但是,我刚刚注意到我的容器是 460 x 460 但是我在 460 x 860 的容器中添加了一个 Jpanel。我猜这会改变答案吗? Jpanel 只是扩展了电路板的外观。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-02
  • 2019-12-05
  • 2023-03-30
相关资源
最近更新 更多