gpt4 book ai didi

java - 在 JFrame 中 move JPanel

转载 作者:行者123 更新时间:2023-11-29 05:29:22 25 4
gpt4 key购买 nike

我想在 JFrame 中 move 一个 jpanel,它似乎不会 move 。我可以在 paint() 方法中设置它的位置,但它不会在重绘中更新。请帮忙!这是我的代码:

public void paint(Graphics g) {
g.drawImage(playerImg, x, 50, null);
this.setLocation(x, 50);
}

public void update() {
this.repaint();
}


public void keyPressed(KeyEvent key) {
if(key.getKeyCode() == KeyEvent.VK_UP) {
x = x + 50;
System.out.println("e");
update();
}
}

最佳答案

“我可以在 paint() 方法中设置它的位置” - 不要,说真的,你不应该在任何 paint 方法中修改任何组件的状态,实际上,您没有调用 super.paint 就已经打断了绘画链,这会给您带来无穷无尽的其他问题。

相反,将父容器布局管理器设置为null,您现在会发现该组件消失了。这是因为布局管理器负责设置组件的大小和位置,您必须接管控制权。

您应该覆盖paintComponent 并调用super.paintComponent,而不是覆盖paint。看看Performing Custom Painting了解更多详情

关于java - 在 JFrame 中 move JPanel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21654777/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com