顺便问一下,这个代码可以在NetBeans上运行无错误,但为什么在DOS上运行却有许多错误?
解决方案 »
- 问个 很菜的问题 这个我没用过 啥意思呀是 execute()
- java.net.url中文网址报错java.io.FileNotFoundException
- Swing,如何关闭单个窗口,而不是退出整个程序?
- 如何用Struts2的Iterator标签在JSP页面循环输出ABCDE
- 请问一个简单程序的结果
- java处理文本文件
- 一个很棘手的问题!!!
- 我建了个QQ高级群:2869593,里面专门讨论JAVA,希望你能加入!人数最后会到200人!
- 新手求助,编译可以通过,但运行出错
- c中的sprintf可以用什么来替代?
- java怎样实现qq表情
- 大家好,,,怎么用JAVA解析OSM文件?谢谢!!
* 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几个星期,这是我写的第一个游戏坦克大战,但做到这个进度来时,有几个问题一直解决不了,一个是开始页面背景不能和按钮兼容,要刷新后按钮才能出现,还有就是按钮点击后确定,背景图片也没了,进入游戏页面也是这个问题,坦克不会出现,改一下代码坦克出现后移动会擦去背景图片,且坦克移动时不会转向。望高手指教,感激不尽!