因此,对Java GUI游戏不熟悉,问题可能微不足道。我试图制作一种类似桌上足球的游戏。 我一直在尝试在我的FoosballTable Jcomp上添加Ball JComp。
有两种表格设置。 它的作用是将Ball Component添加到Table的底部。 我更改了桌面设置,球可见。否则不会。
如何将球添加到顶部?我一直试图在网上搜索无济于事。
谢谢。
修改1 ball类覆盖了paintComponent方法。和Frame类有各种面板。一个面板是开始按钮,即应该显示球
....
jp7.add(Start);
final Ball b = new Ball();
Start.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
JPanel contentball = (JPanel) getContentPane();
contentball.add(b);
contentball.revalidate();
contentball.repaint();
}
});
playersOnString.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
JPanel contentgr = (JPanel) getContentPane();
if(e.getItem() == "[1] [2] [4] [4]"){
System.out.println("First choice");
remove(ground2);
contentgr.add(ground1);
}
else if(e.getItem()== "[1] [2] [5] [3]"){
System.out.println("Second choice");
remove(ground1);
contentgr.add(ground2);
}
contentgr.repaint();
setVisible(true);
}
});
public class Ball extends JComponent{
/**
*
*/
private static final long serialVersionUID = 1L;
private static Ball ball;
int xAxisSpeed , yAxisSpeed;
Team lastContactTeam;
private int size = 15;
public Dimension getPreferredSize()
{
return (new Dimension(100, 500));
}
public static Ball getInstance(){
Random r = new Random();
if(ball == null){
ball = new Ball();
ball.xAxisSpeed = r.nextInt(10)+1;
ball.yAxisSpeed = r.nextInt(10)+0;
}
return ball;
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.BLACK);
g.fillOval(190, 355, size, size);
setVisible(true);
}
}
编辑2 我希望将球添加到已经存在的表的顶部。 (在面板上使用PaintComponent方法绘制的矩形)