防止物体外框

时间:2018-11-05 13:00:52

标签: java object jframe

你好,我创建了一个可以左右移动的对象,但是在尝试使其不超出右侧框架时遇到了问题

我的镜框尺寸为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);
        }
    }

0 个答案:

没有答案