你好,我创建了一个可以左右移动的对象,但是在尝试使其不超出右侧框架时遇到了问题
我的镜框尺寸为200,200
我的盒子的宽度为10,高度为100,位于(50,50) 为了使我的盒子在向右移动时不会脱离框架
我的情况需要检查 当前x位置+框的宽度小于或等于框的宽度
但是问题是我的盒子里有一半仍然掉在外面(见下图)
盒子外面有一半
我希望它如何停止
谢谢您的帮助
public class KeyboardListener implements KeyListener {
private Component c;
private Figure f;
private UserInterface ui;
public KeyboardListener(Component c, Figure f, UserInterface ui) {
this.c = c;
this.f = f;
this.ui = ui;
}
@Override
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_LEFT && (f.getX() > 0)) {
f.move(-1, 0);
} else if (e.getKeyCode() == KeyEvent.VK_RIGHT && f.getX() + 10 <= ui.getFrame().getWidth()) {
f.move(1, 0);
System.out.println("X pos : " + f.getX());
System.out.println("Frame width :" + ui.getFrame().getWidth());
}
c.repaint();
}
}
public class Main {
public static void main(String[] args) {
UserInterface ui = new UserInterface(new Box(50, 50, 10, 100));
SwingUtilities.invokeLater(ui);
}
}