图形化用户界面

问题描述

importjava.awt.*;importjava.awt.event.*;importjava.util.*;importjavax.swing.*;publicclassTank1extendsJFrame{myPanelmp=null;publicstaticvoidmain(String[]args){Tank1t1=newTank1();}publicTank1(){mp=newmyPanel();this.add(mp);this.addKeyListener(mp);this.setSize(400,300);this.setLocation(200,200);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);}}classmyPanelextendsJPanelimplementsKeyListener,Runnable{myTankmt=null;foeTankft=null;//myTankmt1=null;intdfsl=3;Vector<foeTank>ftq=newVector<foeTank>();publicmyPanel(){mt=newmyTank(130,200);//mt1=newmyTank(210,200);for(inti=0;i<dfsl;i++){foeTankft=newfoeTank(i*181,10);ftq.add(ft);}}publicvoidpaint(Graphicsg){//绘图super.paint(g);g.fillRect(0,0,400,300);this.drawPaint(mt.getX(),mt.getY(),g,mt.fangxiang,0);//this.drawPaint(mt1.getX(),mt1.getY(),g,0,0);for(inti=0;i<ftq.size();i++){foeTankft=ftq.get(i);if(ft.shengming){this.drawPaint(ft.getX(),ft.getY(),g,2,1);}}for(inti=0;i<mt.aa.size();i++){zidanzd=mt.aa.get(i);if(zd!=null&&zd.shengming){g.setColor(Color.red);g.fill3DRect(zd.x,zd.y,3,3,false);}if(zd.shengming==false){mt.aa.remove(zd);}}}publicvoiddrawPaint(intx,inty,Graphicsg,intfangxiang,intleixing){switch(leixing){//0代表我方坦克,1代表敌方坦克case0:g.setColor(Color.YELLOW);break;case1:g.setColor(Color.green);break;}switch(fangxiang){//0代表方向上,1代表方向左,2代表方面下,3代表方向右case0:g.draw3DRect(x,y,5,30,false);g.draw3DRect(x+15,y,5,30,false);g.draw3DRect(x+5,y+5,10,20,false);g.fillOval(x+5,y+10,10,10);g.drawLine(x+10,y+15,x+10,y-3);break;case1:g.fill3DRect(x,y,30,5,false);g.fill3DRect(x,y+15,30,5,false);g.fill3DRect(x+5,y+5,20,10,false);g.fillOval(x+10,y+5,10,10);g.drawLine(x+15,y+10,x-3,y+10);break;case2:g.fill3DRect(x,y,5,30,false);g.fill3DRect(x+15,y,5,30,false);g.fill3DRect(x+5,y+5,10,20,false);g.fillOval(x+5,y+10,10,10);g.drawLine(x+10,y+15,x+10,y+33);break;case3:g.fill3DRect(x,y,30,5,false);g.fill3DRect(x,y+15,30,5,false);g.fill3DRect(x+5,y+5,20,10,false);g.fillOval(x+10,y+5,10,10);g.drawLine(x+15,y+10,x+33,y+10);break;}this.repaint();}publicvoidkeyTyped(KeyEvente){}publicvoidkeyReleased(KeyEvente){}publicvoidkeyPressed(KeyEvente){//监听if(e.getKeyCode()==KeyEvent.VK_W){this.mt.setFangxiang(0);this.mt.xiangshang();}elseif(e.getKeyCode()==KeyEvent.VK_A){this.mt.setFangxiang(1);this.mt.xiangzuo();}elseif(e.getKeyCode()==KeyEvent.VK_S){this.mt.setFangxiang(2);this.mt.xiangxia();}elseif(e.getKeyCode()==KeyEvent.VK_D){this.mt.setFangxiang(3);this.mt.xiangyou();}if(e.getKeyCode()==KeyEvent.VK_J){if(mt.aa.size()<3){this.mt.fszd();}}}publicvoidrun(){while(true){try{Thread.sleep(100);}catch(Exceptione){}for(inti=0;i<mt.aa.size();i++){zidanzd=mt.aa.get(i);if(zd.shengming){for(intj=0;j<ftq.size();j++){foeTankft=ftq.get(j);if(ft.shengming){this.jzdf(zd,ft);}}}this.repaint();}}}publicvoidjzdf(zidanzd,foeTankft){switch(zd.fangxiang){case0:case2:if(zd.x>ft.x&&zd.x<ft.x+20&&zd.y>ft.y&&zd.y<ft.y+30){zd.shengming=false;ft.shengming=false;}break;case1:case3:if(zd.x>ft.x&&zd.x<ft.x+30&&zd.y>ft.y&&zd.y<ft.y+20){zd.shengming=false;ft.shengming=false;}}this.repaint();}}classtank{intx=0;inty=0;intsudu=5;intfangxiang=0;booleanshengming=true;publicintgetX(){returnx;}publicintgetY(){returny;}publicvoidsetX(intx){this.x=x;}publicvoidsetY(inty){this.y=y;}publicintgetSudu(){returnsudu;}publicintgetFangxiang(){returnfangxiang;}publicvoidsetSudu(intsudu){this.sudu=sudu;}publicvoidsetFangxiang(intfangxiang){this.fangxiang=fangxiang;}publictank(intx,inty){this.x=x;this.y=y;}}classzidanimplementsRunnable{intx,y;intfangxiang;intsudu=5;booleanshengming=true;publiczidan(intx,inty,intfangxiang){this.x=x;this.y=y;this.fangxiang=fangxiang;}publicvoidrun(){while(true){try{Thread.sleep(30);}catch(Exceptione){}switch(fangxiang){case0:y-=sudu;break;case1:x-=sudu;break;case2:y+=sudu;break;case3:x+=sudu;break;}if(x<0||y<0||x>400||y>300){this.shengming=false;}}}}classmyTankextendstank{Vector<zidan>aa=newVector<zidan>();zidanzd=null;publicmyTank(intx,inty){super(x,y);}publicvoidxiangshang(){y-=sudu;}publicvoidxiangxia(){y+=sudu;}publicvoidxiangzuo(){x-=sudu;}publicvoidxiangyou(){x+=sudu;}publicvoidfszd(){switch(fangxiang){case0:zd=newzidan(x+10,y+15,0);aa.add(zd);break;case2:zd=newzidan(x+10,y+15,2);aa.add(zd);break;case1:zd=newzidan(x+15,y+10,1);aa.add(zd);break;case3:zd=newzidan(x+15,y+10,3);aa.add(zd);break;}Threadt=newThread(zd);t.start();}}classfoeTankextendstank{publicfoeTank(intx,inty){super(x,y);}}我这个程序,为什么子弹打中敌方坦克后不消失啊!代码我找不到原因,菜鸟求助!

解决方案

解决方案二:
调试,多调试吧

时间: 2024-08-24 21:11:42

图形化用户界面的相关文章

Java GUI图形化用户界面编程的基础知识

java的GUI编程(Graphic User Interface,图形用户接口),是在它的抽象窗口工具箱(Abstract Window Toolkit,AWT)上实现的,java.awt是AWT的工具类库,其中包括了丰富的图形.用户界面元件和布局管理器的支持. GUI主要用在两个地方: Application: Applet. 1)GUI界面: 用户与程序之间交互的一个控制面板,其内包含有菜单,控件(或组件),容器并能响应用户的事件. 现在有各种各样的窗口系统,不同的窗口系统提供给程序设计的

图形化管理MySQL更轻松

MySQL是一个真正的多用户.多线程SQL数据库服务器,是目前最流行的开放源码数据库服务器之一.来自MySQL项目的数据显示,目前MySQL用户已经达到400万个.大家熟知的.使用MySQL的Web站点包括Yahoo.Finance.MP3.com.Motorola.NASA.Silicon Graphics和Texas Instruments等. 一般来说,用户以命令行的方式来使用MySQL.很多用户在Windows环境中一直使用图形用户界面(GUI)来操作和管理数据库,对命令行方式可能不习惯

使用silverlight构建一个图形化流程设计器(一)

前言 Silverlight发布已经很久了,具体是什么就不多说,大家一定很清楚.最关心的就是其中的跨浏览器能力,以及强大的用户界面表现能力.于是决定使用它来实现一个流程设计工具,以替代以前的流程设计器(原来是用vml实现,只能在IE浏览器上工作),因为第一次接触silverlight,在学习.工作的过程中肯定会遇到很多的问题,将这个学习新知识.解决问题的过程记录下来,肯定能找到许多志同道合的朋友,也请大家抱着这种态度阅读本文. 本文主要讲述使用vs.net2008开发一个基于silverligh

《Python语言程序设计》——1.9 开始学习图形化程序设计

1.9 开始学习图形化程序设计 关键点:Turtle是Python内嵌的绘制线.圆以及其他形状(包括文本)的图形模块.它很容易学习并且使用简单. 初学者通常很喜欢通过图形学习程序设计.因此,我们在本书第一部分的很多章的最后都会用一节讲解图形化程序设计.但是,这些素材不是强制性的,可以跳过它们或者以后再涉及这些内容. 在Python中有多种编写图形程序的方法.一个简单的启动图形化程序设计的方法是使用Python内嵌的Turtle模块.本书后面将会介绍Tkinter来开发复杂的图形用户界面应用程序.

Navicat for MySQL(mysql图形化管理工具)是什么?_Mysql

MySQL现已经成为大多数中小企业及个人站长建站的首选数据库,其自带了简单web图形管理phpmyadmin工具,但是管理.操作能力有限,这就使得人们常需要寻找一个更为专业,管理功能更为强大的管理工具,以方便于我们更好的应用和管理MySQL数据库. 这里就给大家介绍一个常用的MySQL数据库管理工具:Navicat for MySQL.首先我们介绍一下: Navicat for MySQL是什么? Navicat for MySQL是一款强大的MySQL数据库管理和开发工具,它为专业开发者提供了

图形化编程实现改进的欧拉格式和龙格库塔格式。这里有个C语言的,想改写成C#。

问题描述 图形化编程实现改进的欧拉格式和龙格库塔格式.这里有个C语言的,想改写成C#. 1)改进欧拉法求解常微分方程的初值问题 #include float func(float x,float y) { return(y-x); } float euler(float x0,float xn,float y0,int N) { float x,y,yp,yc,h; int i; x=x0; y=y0; h=(xn-x0)/(float)N; for(i=1;i<=N;i++) { yp=y+h

图形化管理MYSQL数据库的工具 SQLyog 8.6.2 发布

SQLyog 是一个易于使用的.快速而简洁的图形化管理MYSQL数据库的工具,它能够在任何地点有效地管理你的数据库. Changes: 1. SJA now supports an additional -r parameter that tells how big CHUNKS should be when copying to an empty table. 2. The -r parameter only has effect with Data Sync jobs and is igno

CSS3 HTML5图形化边界实例

顾名思义,图形化边界就是允许使用图片作为对象的边界,语法如下: border: 5px solid #cccccc; -webkit-border-image: url(/images/border-image.png) 5 repeat; -moz-border-image: url(/images/border-image.png) 5 repeat; border-image: url(/images/border-image.png) 5 repeat; 这里,border: 5px 设

网页设计技巧:视差滚动效果和图形化在网页中的呈现

文章描述:ONE 视差滚动效果 Parallax Scrolling. ONE 视差滚动效果 Parallax Scrolling 大家小时候是否玩过红白机或小霸王上面的游戏? 这些游戏基本上都是通过前景与背景在场景移动时产生不同的视差,从而达到简单的立体效果 所以说视差滚动不是啥新鲜事儿,我们小时候就玩过了-- 目前这种视差滚动效果被越来越多的国外网站所应用, 成为网页设计的热点趋势 给它以重新定义 不过这类效果的使用也需要看具体环境和最终页面出来的整体性能,防止页面过于拖沓. 其次,设计上要