我想在JFrame中或者Frame中添加一张背景图片,然后在这图片上画出会移动的小球,怎么实现?我的代码把添加背景图片去掉,小球就正常运行了,

怎么修改啊?

希望各位大侠指教

不胜感激!!!!

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class TestItem extends JFrame {

JLabel jl;

Bullet b = new Bullet(80,80);

public static void main(String[] args) {

new TestItem().lauchFrame();

}

public void lauchFrame() {

jl = new JLabel();

ImageIcon image = new ImageIcon("Images\\mainBack.png");

jl.setIcon(image);

jl.setBounds(0, 0, image.getIconWidth(), image.getIconHeight());

this.setTitle("坦克大战");

this.setSize(246, 350);

this.setVisible(true);

this.getLayeredPane().add(jl, new Integer(Integer.MIN_VALUE));

((JPanel)getContentPane()).setOpaque(false);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent e) {

System.exit(0);

}

});

this.setBackground(Color.black);

new Thread(new paintThread()).start();

this.addKeyListener(new keyMonitor());

}

public void paint(Graphics g) {

b.draw(g);

}

private class paintThread implements Runnable {

public void run() {

while(true) {

repaint();

try {

Thread.sleep(80);

} catch (Exception e) {

e.printStackTrace();

}

}

}

}

private class keyMonitor extends KeyAdapter {

public void keyPressed(KeyEvent e) {

b.keyPressed(e);

}

public void keyReleased(KeyEvent e) {

b.keyReleased(e);

}

}

}

import java.awt.Color;

import java.awt.Graphics;

import java.awt.event.KeyEvent;

public class Bullet {

private int x;

private int y;

private static final int width = 16;

private static final int height = 16;

private static final int speed = 8;

Direction dir = Direction.D;

private boolean bU = false,bR = false,bD = false,bL = false;

public Bullet(int x, int y) {

this.x = x;

this.y = y;

}

public int getX() {

return x;

}

public void setX(int x) {

this.x = x;

}

public int getY() {

return y;

}

public void setY(int y) {

this.y = y;

}

public void draw(Graphics g) {

Color c = g.getColor();

g.setColor(Color.yellow);

g.fillOval(x, y, width, height);

g.setColor(c);

move();

}

private void move() {

switch(dir) {

case U:

y -= speed;

break;

case R:

x += speed;

break;

case D:

y += speed;

break;

case L:

x -= speed;

break;

}

}

public void keyPressed(KeyEvent e) {

switch(e.getKeyCode()) {

case KeyEvent.VK_UP:

bU = true;

break;

case KeyEvent.VK_RIGHT:

bR = true;

break;

case KeyEvent.VK_DOWN:

bD = true;

break;

case KeyEvent.VK_LEFT:

bL = true;

break;

}

licalDirection();

}

private void licalDirection() {

if(bU && !bR && !bD && !bL) {

dir = Direction.U;

} else if(!bU && bR && !bD && !bL) {

dir = Direction.R;

} else if(!bU && !bR && bD && !bL) {

dir = Direction.D;

} else if(!bU && !bR && !bD && bL) {

dir = Direction.L;

}

}

public void keyReleased(KeyEvent e) {

switch(e.getKeyCode()) {

case KeyEvent.VK_UP:

bU = false;

break;

case KeyEvent.VK_RIGHT:

bR = false;

break;

case KeyEvent.VK_DOWN:

bD = false;

break;

case KeyEvent.VK_LEFT:

bL = false;

break;

}

licalDirection();

}

}

public enum Direction {

U,R,D,L;

}

java 绘图球的移动_求助在JFrame上绘制移动的小球相关推荐

  1. java语言计算器怎么写_求助,一个计算器的括号功能怎么写啊。

    求助,一个计算器的括号功能怎么写啊. import javax.swing.*; import javax.swing.event.*; import java.awt.*; import java. ...

  2. java 504错误怎么解决_求助java.lang.NoClassDefFoundError怎么解决,报错信息如下

    求助java.lang.NoClassDefFoundError怎么解决,报错信息如下 四月 14, 2018 11:03:07 上午 org.apache.catalina.startup.Embe ...

  3. java窗口如何写不能移动_[求助]请教高手,下面程序为何组件不能自由移动,百思不得其解!...

    可能不合你的原意 import javax.swing.*; import java.awt.*; import java.awt.event.*; class twoPanelFrame exten ...

  4. java 打印 排序 数字塔_求助,用循环方法输出以下数字塔

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 package com.bift; import java.io.*; //杨辉三角 public class Test { public static ...

  5. java用接口实例化对象_[求助]迷茫中,接口可以直接实例化对象吗?

    可能是我没有写完整吧,还是我没有理解好 1 接口 public interface SetAndGetWeight { public void setW(double weight); public ...

  6. java重置radiobutton的选项_求助:这道题显示radiobutton男女的功能和重置功能怎么做...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 package org.demo.app.gui; import java.awt.BorderLayout; import java.awt.Color ...

  7. java里的椭圆拟合_[求助]椭圆的跟踪拟合

    [求助]椭圆的跟踪拟合 图中的小黑点表示数据点,这些数据点是角度编码器在转动过程中依次得到(可以理解为这些数据点表示转轴当时的角度位置),理想情况下编码器转动一圈得到的数据点应组成一个圆(圆心为原点, ...

  8. Java页面跳转失效_求助各位java大神,为什么表单提交之后跳转页面失灵

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 本人java菜鸟一枚请各位java大神帮忙看看为什么我的表单能提交,但是就是跳转不到处理页面,跳转功能时灵时不灵的.小女子在此先谢过了! 这下面是JQue ...

  9. java线程读写互相影响_求助。多线程读取文件相互影响

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 for(.......) { new Thread(new Runnable(){ @Override public void run() { //读取文 ...

最新文章

  1. centoros 环境安装
  2. 轻松学Pytorch–环境搭建与基本语法
  3. Cassandra 2016/00
  4. 实现Qt日志功能并输出到文件
  5. Tornado-Lesson05-模版继承、函数和类导入、ui_methods和ui_modules
  6. javascript闭包原理
  7. Api容器在应用架构演化中的用途
  8. 实验室服务器系统设计,实验室教学管理系统设计与实现
  9. 数据库连接报错2013-lost connection to mysql server at ‘reading initial communication packet’ system error:0
  10. Modelsim缺失库快速添加
  11. 西南科技大学OJ题 利用二叉树中序及先序遍历确定该二叉树的后序序列0984
  12. 【Java多线程】synchronized同步语句块
  13. shell题库选择题_linux题库选择及答案
  14. python计算手机销量年增长率_python如何计算环比增长率
  15. vs2010 正式版官方下载地址
  16. openvswitch console输出
  17. Python中7种随机函数总结
  18. 读《论证是一门学问》
  19. Java初学01:学习路线,springcloud视频下载
  20. 每个人小时候都有一个小小的梦

热门文章

  1. Redis(1):简介
  2. Unity 通过Unity Admob Plugin插件集成admob教程
  3. 发送邮件时,如何附带上中文等价名信息
  4. 862. 和至少为 K 的最短子数组
  5. 分布与并行计算—生产者消费者模型实现(Java)
  6. 您应该在2020年首先学习哪种编程语言? ɐʌɐɾdıɹɔsɐʌɐɾ:ɹǝʍsuɐ
  7. unity 克隆_使用Unity开发Portal游戏克隆
  8. react中使用构建缓存_通过在React中构建Tic Tac Toe来学习ReasonML
  9. 途虎养车三个创始人_3个来自非常规创始人的获奖技术和产品见解
  10. lisp语言是最好的语言_Lisp可能不是数据科学的最佳语言,但是我们仍然可以从中学到什么呢?...