JAVA添加图书样例图_java - Java-以全屏模式添加图像(以Java示例开发游戏-图书) - 堆栈内存溢出...

我正在尝试遵循David Brackeen所写的《用Java开发游戏》一书。 在第2章中,有一个示例如何将图像添加到全屏应用程序。 他所做的是,他添加了JPG背景图像,然后添加了4张PNG图片。 我试图像往常一样通过自己看书来编写代码来做到这一点。 没用

我在代码中搜索错误,更改了一些内容,尝试了其他操作,但是没有用。 然后,我尝试使用他自己的代码,该代码是从他的网站下载的。 那也行不通..我试图找到另一种添加图像的方法,但是现在我整个上午都在搜索..我似乎无法找出一种以任何其他方式在本课程中实现图像的方法那是本书写的。我的Java编程水平还不够高。

我已经尝试了尽可能多地理解本书中编写的代码,并且我认为我大部分都理解了。 我只是不明白为什么没有显示图像。 如果有人能在正确的道路上帮助我,我将不胜感激。 这是从作者网站下载的图像加载文件的代码(我修改了括号和一些空格,以使其更易于阅读)

import java.awt.*;

import javax.swing.ImageIcon;

import javax.swing.JFrame;

public class ImageTest extends JFrame

{

public static void main(String[] args)

{

DisplayMode displayMode;

if (args.length == 3)

{

displayMode = new DisplayMode(

Integer.parseInt(args[0]),

Integer.parseInt(args[1]),

Integer.parseInt(args[2]),

DisplayMode.REFRESH_RATE_UNKNOWN);

}

else

{

displayMode = new DisplayMode(800, 600, 16, DisplayMode.REFRESH_RATE_UNKNOWN);

}

ImageTest test = new ImageTest();

test.run(displayMode);

}

private static final int FONT_SIZE = 24;

private static final long DEMO_TIME = 10000;

private SimpleScreenManager screen;

private Image bgImage;

private Image opaqueImage;

private Image transparentImage;

private Image translucentImage;

private Image antiAliasedImage;

private boolean imagesLoaded;

public void run(DisplayMode displayMode)

{

setBackground(Color.blue);

setForeground(Color.white);

setFont(new Font("Dialog", Font.PLAIN, FONT_SIZE));

imagesLoaded = false;

screen = new SimpleScreenManager();

try

{

screen.setFullScreen(displayMode, this);

loadImages();

try

{

Thread.sleep(DEMO_TIME);

}

catch (InterruptedException ex){}

}

finally

{

screen.restoreScreen();

}

}

public void loadImages()

{

bgImage = loadImage("images/background.jpg");

opaqueImage = loadImage("images/opaque.png");

transparentImage = loadImage("images/transparent.png");

translucentImage = loadImage("images/translucent.png");

antiAliasedImage = loadImage("images/antialiased.png");

imagesLoaded = true;

// signal to AWT to repaint this window

repaint();

}

private Image loadImage(String fileName)

{

return new ImageIcon(fileName).getImage();

}

public void paint(Graphics g)

{

// set text anti-aliasing

if (g instanceof Graphics2D)

{

Graphics2D g2 = (Graphics2D)g;

g2.setRenderingHint(

RenderingHints.KEY_TEXT_ANTIALIASING,

RenderingHints.VALUE_TEXT_ANTIALIAS_ON);

}

// draw images

if (imagesLoaded)

{

g.drawImage(bgImage, 0, 0, null);

drawImage(g, opaqueImage, 0, 0, "Opaque");

drawImage(g, transparentImage, 320, 0, "Transparent");

drawImage(g, translucentImage, 0, 300, "Translucent");

drawImage(g, antiAliasedImage, 320, 300, "Translucent (Anti-Aliased)");

}

else

{

g.drawString("Loading Images...", 5, FONT_SIZE);

}

}

public void drawImage(Graphics g, Image image, int x, int y, String caption)

{

g.drawImage(image, x, y, null);

g.drawString(caption, x + 5, y + FONT_SIZE + image.getHeight(null));

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值