顺便问一下,这个代码可以在NetBeans上运行无错误,但为什么在DOS上运行却有许多错误?

解决方案 »

  1.   

    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
    package tanke1;import java.awt.Color;
    import java.awt.Font;
    import java.awt.Graphics;
    import java.awt.event.KeyEvent;
    import java.awt.event.KeyListener;
    import java.awt.event.MouseEvent;
    import java.awt.event.MouseListener;
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.IOException;
    import java.util.logging.Level;
    import java.util.logging.Logger;
    import javax.imageio.ImageIO;
    import javax.swing.*;public class Tanke1 extends JFrame {
        static JButton kaishi=new JButton("开始");
        static JButton shezhi=new JButton("设置");
        static JButton bangzhu=new JButton("帮助");
        static JButton guanyu =new JButton("关于");
        static JButton tuichu=new JButton("退出");
        static Tanke1 f=new Tanke1();
        
        public static void main(String[] args) {
           f.setTitle("坦克大战");
           f.setLayout(null);
           f.setSize(800, 526);
           f.setLocation(300,100);
           f.setResizable(false);
           f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          
           kaishi.setFont(new Font("宋体",50,30));
           kaishi.setBounds(130, 100, 100, 50);
           shezhi.setFont(new Font("宋体",50,30));
           shezhi.setBounds(130, 170, 100, 50);
           bangzhu.setFont(new Font("宋体",50,30));
           bangzhu.setBounds(130,240,100,50);
           guanyu.setFont(new Font("宋体",50,30));
           guanyu.setBounds(130,310,100,50);
           tuichu.setFont(new Font("宋体",50,30));
           tuichu.setBounds(130,380, 100, 50);
           f.add(kaishi);
           f.add(shezhi);
           f.add(bangzhu);
           f.add(guanyu);
           f.add(tuichu);
           kaishi.addMouseListener(new Mykaishi());
           shezhi.addMouseListener(new Myshezhi());
           bangzhu.addMouseListener(new Mybangzhu());
           guanyu.addMouseListener(new Myguanyu());
           tuichu.addMouseListener(new Mytuichu());
           f.setVisible(true);
        }
         
        
        @Override
          public void  paint(Graphics g){
             BufferedImage image=null;
            try {
                image =ImageIO.read(new File("D:/java/Tanke/src/tanke/kaishi.JPG"));
            } catch (IOException ex) {
                Logger.getLogger(Tanke1.class.getName()).log(Level.SEVERE, null, ex);
            }
            g.drawImage(image, 0, 0, this);
            g.setColor(Color.BLACK);
            g.setFont(new Font("宋体",50,50));
            g.drawString("坦克大战", 90, 100);
            }
        
    static class Mykaishi implements MouseListener{
            @Override
            public void mouseClicked(MouseEvent e) {}
           @Override
            public void mousePressed(MouseEvent e) {
                 Game jf=new Game();
                    jf.game(jf);
                   f.setVisible(false);
               }
            @Override
            public void mouseReleased(MouseEvent e) {}
           @Override
            public void mouseEntered(MouseEvent e) {}
            @Override
            public void mouseExited(MouseEvent e) {}
        }  static class Myshezhi implements MouseListener{
            @Override
            public void mouseClicked(MouseEvent e) {}
            @Override
            public void mousePressed(MouseEvent e) { 
              JOptionPane.showMessageDialog(shezhi, "Sorry!技术有限无法导入背景音乐!");}
            @Override
            public void mouseReleased(MouseEvent e) {}
            @Override
            public void mouseEntered(MouseEvent e) {}
            @Override
            public void mouseExited(MouseEvent e) {}
          }
      
      static class Mybangzhu implements MouseListener{
            @Override
            public void mouseClicked(MouseEvent e) {}
            @Override
            public void mousePressed(MouseEvent e) {
                JOptionPane.showMessageDialog(bangzhu, "上:W 下:S 左:A 右:D 子弹:Enter");
            }
            @Override
            public void mouseReleased(MouseEvent e) {}
            @Override
            public void mouseEntered(MouseEvent e) {}
            @Override
            public void mouseExited(MouseEvent e) {}
           }
      
      static class Myguanyu implements MouseListener{
            @Override
            public void mouseClicked(MouseEvent e) {}
            @Override
            public void mousePressed(MouseEvent e) {
                 JOptionPane.showMessageDialog(guanyu,"本游戏由长大软工1202班董进编写");
            }
            @Override
            public void mouseReleased(MouseEvent e) {}
            @Override
            public void mouseEntered(MouseEvent e) {}
            @Override
            public void mouseExited(MouseEvent e) {}
      }
      
      static class Mytuichu implements MouseListener{
            @Override
            public void mouseClicked(MouseEvent e) {}
            @Override
            public void mousePressed(MouseEvent e) {
                  System.exit(0);
            }
            @Override
            public void mouseReleased(MouseEvent e) {}
            @Override
            public void mouseEntered(MouseEvent e) {}
            @Override
            public void mouseExited(MouseEvent e) {}
      }
    }
    class Game extends JFrame{
       static  int x=0,y=0; 
       public Game(){
           setTitle("坦克大战");
           setSize(800,526);
           setLayout(null);
           setLocation(300,100);
           setResizable(false);
           setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
           setVisible(true);
    }
       
        @Override
     public void paint(Graphics g){
             BufferedImage pic=null;
            try {
                pic=ImageIO.read(new File("D:/java/Tanke/src/tanke/beijing.JPG"));
            } catch (IOException ex) {
                Logger.getLogger(Game.class.getName()).log(Level.SEVERE, null, ex);
            }
            g.drawImage(pic, 0, 0, this);
       }
        
     public void game(JFrame j){
             JPanel pan=new JPanel();
            ImageIcon icw=new ImageIcon("D:/java/Tanke/src/tanke/tanke7上.jpg");
            JButton btw=new JButton(icw);
            j.setLayout(null);
           btw.addKeyListener(new MyKeyListener());
           btw.setBounds(500, 300, 30, 36);
           btw.setVisible(true);
           pan.add(btw);
           pan.setLayout(null);
           pan.setVisible(true);
           j.add(pan);
           j.setVisible(true);
          
     }
     
     static class MyKeyListener implements KeyListener{
            @Override
            public void keyTyped(KeyEvent e) {}
            @Override
               public void keyPressed(KeyEvent e) {
                  JButton but=(JButton)e.getSource();
                   x=but.getLocation().x;
                   y=but.getLocation().y;
                   if(e.getKeyCode()==KeyEvent.VK_W)
                   { 
                       y=y-5;
                       if(y<=0)y=0;
                   }  
                 else  if(e.getKeyCode()==KeyEvent.VK_S)
                   {  
                       y=y+5;
                       if(y>=460)y=460;
                   }
                  else if(e.getKeyCode()==KeyEvent.VK_S)
                   {  
                       y=y+5;
                       if(y>=460)y=460;
                   }  else if(e.getKeyCode()==KeyEvent.VK_A)
                       {
                           x=x-5;
                           if(x<=0)x=0;
                       } else if(e.getKeyCode()==KeyEvent.VK_D)
                       {
                           x=x+5;
                           if(x>=765)x=765;
                       }
                   System.out.println("x="+x+"  "+"y="+y);
                     but.setLocation(x,y);
                 }
            @Override
              public void keyReleased(KeyEvent e) {}
     }
    }
    不好意思,我是新手,不懂规矩,望见谅,上面是代码,刚接触java几个星期,这是我写的第一个游戏坦克大战,但做到这个进度来时,有几个问题一直解决不了,一个是开始页面背景不能和按钮兼容,要刷新后按钮才能出现,还有就是按钮点击后确定,背景图片也没了,进入游戏页面也是这个问题,坦克不会出现,改一下代码坦克出现后移动会擦去背景图片,且坦克移动时不会转向。望高手指教,感激不尽!