public DefaultAWTMonitor() {
		canvas.setPreferredSize(new Dimension(160 * SCALE, 128 * SCALE));
		canvas.setMinimumSize(new Dimension(160 * SCALE, 128 * SCALE));
		canvas.setMaximumSize(new Dimension(160 * SCALE, 128 * SCALE));
		canvas.setFocusable(true);

		Thread t = new Thread() {
      public void run() {
        try {
          BufferedImage img2 = new BufferedImage(160, 128, 2);
          BufferedImage img = new BufferedImage(128, 128, 2);
          int[] pixels = ((DataBufferInt)img.getRaster().getDataBuffer()).getData();
          setPixels(pixels);

          canvas.requestFocus();
          while (true) {
          	if (canvas.isDisplayable()) {
	            render();
	            Graphics2D g = (Graphics2D) img2.getGraphics();
	            if (g != null) {
	            	g.setColor(new Color(pixels[0x3000]));
	            	g.fillRect(0, 0, 160, 128);
	            	g.drawImage(img, 16, 16, 128, 128, null);
	            	g.dispose();
	            }
	
	            g = (Graphics2D) canvas.getGraphics();
	            if (g != null) {
	            	g.drawImage(img2, 0, 0, 160 * SCALE, 128 * SCALE, null);
	            	g.dispose();
	            }
          	}
            Thread.sleep(1L);
          }
        } catch (Exception e) {
          e.printStackTrace();
        }
      }
    };
    t.start();
	}