Applet无法从Graphics对象绘制 [英] Applet not drawing from Graphics object

查看:97
本文介绍了Applet无法从Graphics对象绘制的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述


我的Applet查看器/Applet/画布有一些问题:

当我使用它时,Applet查看器是我想要的大小,但是Applet本身是1x2(Pixels)

我正在使用Eclipse

资料来源:

Hi
I have some problems with my Applet viewer/Applet/Canvas:

When i use it, the Applet viewer is the size i want, but the applet itself is 1x2(Pixels)

I am using Eclipse

Source:

package net.petterroea;
 
import java.applet.Applet;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
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;
 
public class TheBox extends Applet implements Runnable{
	Input input;
	Screen screen;
	boolean running;
	Thread thisThread;
	Image backBuffer;
	public TheBox()
	{
		thisThread = new Thread(this);
		input = new Input(this);
		this.setPreferredSize(new Dimension(640, 480));
		this.addKeyListener(input);
		this.addFocusListener(input);
		this.addMouseListener(input);
		Media.loadImages();
		screen = new MainMenuScreen();
	}
	@Override
	public void start()
	{
		running = true;
		thisThread.run();
	}
	@Override
	public void stop()
	{
		running = false;
	}
	@Override
	public void run() 
	{
		Graphics realg;
		Graphics g;
		while(running)
		{
			synchronized(this)
			{
				System.out.println(this.getWidth() + " " + this.getHeight());
				realg = this.getGraphics();
				if(backBuffer == null)
				{
					backBuffer = createImage(this.getWidth(), this.getHeight());
				}
				else if(backBuffer.getWidth(null) != this.getWidth() || backBuffer.getHeight(null) != this.getHeight())
				{
					backBuffer = createImage(this.getWidth(), this.getHeight());
					
				}
				g = backBuffer.getGraphics();
				screen.tick(g);
				realg.drawImage(backBuffer, 0, 0, null);
				try {
					Thread.sleep(50);
				} catch (InterruptedException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}
	}
}

推荐答案

简单答案:您的代码是错误的.
复杂的答案:我们无法猜测代码的任何内容,除非看到错误的出处,并通过解释所需的代码来解决.
Simple answer: Your code is wrong.
Complex answer: We cannot guess anything about your code without seeing where it is going wrong, and by you explaining what you expect it to do.


这篇关于Applet无法从Graphics对象绘制的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆