gpt4 book ai didi

java - Ball.setBounds 在组件 Order() 实现后停止工作

转载 作者:行者123 更新时间:2023-12-02 05:53:50 25 4
gpt4 key购买 nike

我无法使用 componentZOrder() 方法正确设置 Ball Bounds

public class gamearea extends JFrame{

private Toolkit toolkit = Toolkit.getDefaultToolkit();
private Cursor c;

JLabel ball = new JLabel();
JLabel desk = new JLabel();

构造函数

   Gamearea(){
addMouseMotionListener(this);
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
setMaximumSize(new Dimension(800, 600));
setMinimumSize(new Dimension(800, 600));
setLayout(null);

desk.setIcon(new ImageIcon(getClass().getResource("/images/table.png")));

从文件夹中获取图像

       ball.setIcon(new ImageIcon(getClass().getResource("/images/bball.png")));

desk.setBounds(0,0,800,600);

球出现但不在正确的位置

       ball.setBounds(356,328,25,25);

add(desk);
add(ball);

setComponentZOrder(desk,1);
setComponentZOrder(ball,0);

setVisible(true);
}
}

最佳答案

你的gamearea类的内容 Pane 的布局管理器是什么?如果你没有设置它,它默认为BorderLayout,然后当你向其中添加两个组件时,第一个位于CENTER,第二个位于CENTER将取代中心的第一个。

您的组件不应该是 JFrame 的子类。让它扩展 JPanel 并使用正确的 LayoutManager 将子项放置在面板中,然后将该面板添加到随后显示的 JFrame 中。

此外,您应该遵循 Java 约定,并以大写字母开头类的名称(GameArea 或 Gamearea,而不是 gamearea)。

关于java - Ball.setBounds 在组件 Order() 实现后停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56028996/

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