Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在JavaSwingGUI中删除一个点?_Java_Swing_User Interface - Fatal编程技术网

如何在JavaSwingGUI中删除一个点?

如何在JavaSwingGUI中删除一个点?,java,swing,user-interface,Java,Swing,User Interface,但是我有一个家庭作业要做的就是制作一个轰炸机游戏,我想目前为止我做得很好。我和我的团队正在使用“SWING GUI”。我有一个轰炸机在地图上走动,但我不知道如何让我的轰炸机留下一枚炸弹。我想要的东西就像当用户按下“空格”时一样炸弹手在后面扔了一颗炸弹。如果你有任何想法如何使炸弹爆炸,我将非常感谢 这是到目前为止我的代码。正如我说的,我有bombarian,但不知道如何让他放弃新的分数 import java.awt.Graphics; import java.awt.Image; import

但是我有一个家庭作业要做的就是制作一个轰炸机游戏,我想目前为止我做得很好。我和我的团队正在使用“SWING GUI”。我有一个轰炸机在地图上走动,但我不知道如何让我的轰炸机留下一枚炸弹。我想要的东西就像当用户按下“空格”时一样炸弹手在后面扔了一颗炸弹。如果你有任何想法如何使炸弹爆炸,我将非常感谢

这是到目前为止我的代码。正如我说的,我有bombarian,但不知道如何让他放弃新的分数

import java.awt.Graphics;
import java.awt.Image;
import java.awt.Point;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;

import javax.swing.JFrame;

public class Bombarian extends JFrame {

    int x, y;
    private Image dbImage;
    private Graphics dbg;
    private Point bomb;
    public class AL extends KeyAdapter{

        public void keyPressed(KeyEvent e){

            int keyCode = e.getKeyCode();
            if (keyCode == e.VK_UP) {
                y--;
            }
            if (keyCode == e.VK_DOWN) {
                y++;            
                        }
            if (keyCode == e.VK_LEFT) {
                x--;
            }
            if (keyCode == e.VK_RIGHT) {
                x++;
            }
            if (keyCode == e.VK_SPACE) {
                bomb = new Point(x,y);
            }

        }
        public void keyReleased(KeyEvent e){

        }
    }

    public Bombarian() {
        addKeyListener(new AL());
        add(new Board());
        setTitle("Bombarian");
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setSize(700, 350);
        setLocationRelativeTo(null);
        setVisible(true);
        setResizable(false);
        x = 20;
        y = 45;
    }

    public void paint(Graphics g){
        dbImage = createImage(getWidth(), getHeight());
        dbg = dbImage.getGraphics();
        paintComponent(dbg);
        g.drawImage(dbImage, 0, 0, this);
    }

    public void paintComponent(Graphics g){
        g.fillOval(x, y, 20, 20);
        repaint();
    }

    public static void main(String[] args) {
        new Bombarian();
    }
}

你只需要创建一个新的对象炸弹,它将在你角色的当前位置产生并停留在那里。所以炸弹的(x,y)坐标保持不变。如果你的背景在移动,炸弹应该粘在背景上,这样它看起来就呆在同一个地方。为了能给你更多的帮助,你应该发布你的代码或者解释你是如何编程的。希望我能帮上忙。

最好先尝试一下解决你的问题。然后,如果您的代码遇到问题,请返回代码。1)从paintComponent中调用
repaint()。永远不要那样做。2) 调用
paintComponent
override中的super方法。3) 不要覆盖
paint
方法,而是使用
paintComponent
。4) 在扩展JPanel而不是顶级窗口的类中进行绘图。5) 阅读图形教程——不要胡编乱造。6) 给出所有尝试的覆盖方法
@override
注释。使用摆动计时器播放动画,在每次滴答声时按时间进行:更改x、y等;打电话到那里重新粉刷。