有没有办法导入当前的桌面背景?

时间:2016-03-22 11:43:24

标签: java

我正在为学校作业制作蛇,并在尝试使背景清晰时遇到问题。它在我改变背景颜色之前起作用了。但是,现在它将不再删除任何已经绘制然后被掩盖的内容。

例如:当分数改变时,数字将显示在彼此的顶部,并且蛇的先前位置将不会被擦除,并且他似乎仍然在那里。我有一个想法,这将涉及我使用当前的桌面背景。

第1课:

private void draw(Graphics g) {


    if (inGame) {

        g.drawImage(apple, appleCoordinateX, appleCoordinateY, this); //Draws apple


        for (int i = 0; i < dotNum; i++) { //Runs loop to draw each piece of the snake
            if (i == 0) {
                g.drawImage(head, coordinateX[i], coordinateY[i], this); //Draws the head in a different colour to body
            } else {
                g.drawImage(body, coordinateX[i], coordinateY[i], this); //Draws body
            }
        }

      if ((Integer.toString(score*dotNum).length()) >= 3) {
        size = 23;
        fromEdge = 4;
      } else if ((Integer.toString(score*dotNum).length()) >= 4) {
          size = 15;
          fromEdge = 3;
      }
        Font font = new Font("Comic Sans", Font.BOLD, size);
        g.setColor(Color.RED);
        g.setFont(font);
        g.drawString(Integer.toString(score*dotNum), fromEdge, 30); //Draws scorekeeper

    Toolkit.getDefaultToolkit().sync();

(已编辑)第2课:

{{1}}

1 个答案:

答案 0 :(得分:1)

我认为您需要为JFrame的内容窗格设置背景颜色,而不是JFrame。

myJFrame.getContentPane().setBackground( desiredColor );

对于面板和&amp;标签,您必须将项目设置为不透明

jpanel.setOpaque(true);