Im Vollbildmodus zeichnen

timestamp

Mitglied Käsekuchen
Hallo Community,

ich habe mir folgenden Code zusammengeschnitzt nur leider erhalte ich keine Textausgabe. Kann mir jemand helfen?

Java:
import java.awt.DisplayMode;
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import java.awt.Frame;
import java.awt.event.KeyListener;
import java.awt.event.KeyEvent;
import java.awt.Graphics;
import java.awt.Canvas;
import java.awt.Color;
public class game extends Frame implements KeyListener {
	final static long serialVersionUID = 1L;
	public game() {	
		GraphicsDevice gd = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
		this.setSize(1280, 1024);
		try{
			gd.setFullScreenWindow(this);		
			gd.setDisplayMode(new DisplayMode(1280,1024,32,125));
			new graphics();
		}
		catch(Exception e){
			System.out.println(e.toString());
		}
		this.setVisible(true);
		this.addKeyListener(this);
	}
	public static void main(String[] args) {
		new game();
	}
	public void keyPressed(KeyEvent evt){
		if( evt.getKeyCode() == KeyEvent.VK_ESCAPE ){		
			System.exit(0);
		}
	}
	public void keyReleased(KeyEvent evt){		
	}
	public void keyTyped(KeyEvent evt){		
	}
	public class graphics extends Canvas{
		final static long serialVersionUID = 2L;
		public void paint(Graphics g){
			g.setColor(Color.black);
			g.drawString("TestTest", 125, 20);
		}
	}

}
 
Klassen werden in Java große geschrieben ;)

In Zeile 18 sehe ich folgendes:
Java:
new graphics();
Das ist ja schön und gut, aber irgendwie wird diese Komponente nirgends deinem Frame hinzugefügt ... Deswegen siehst du auch nix, es ist einfach nicht vorhanden ;)
 
Hi

ich hab es jetzt mal hinzugefügt, nur ist der Bildschirm jetzt schwarz. Ich habe bei google leider auch kein Beispiel für mein Problem gefunden. Kannst du mir nocheinmal helfen? Hier nocheinmal der aktuelle, gekürzte Code:
Java:
public class Game extends Frame implements KeyListener {
	final static long serialVersionUID = 1L;
	public Game() {	
		GraphicsDevice gd = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
		this.setSize(1280, 1024);
		this.add(new Draw());
		try{
			gd.setFullScreenWindow(this);		
			gd.setDisplayMode(new DisplayMode(1280,1024,32,60));			
		}
		catch(Exception e){
			System.out.println(e.toString());
		}
		this.setVisible(true);
		this.addKeyListener(this);
	}
	public static void main(String[] args) {
		new Game();
	}
	public class Draw extends Canvas{
		final static long serialVersionUID = 2L;
		public void paint(Graphics g){
			g.setColor(Color.black);
			g.drawString("TestTest", 125, 20);
			g.setColor(Color.white);
			g.drawString("Test Test",200,100);
		}
	}

}
 
Also bei mir t des außer halt das der KeyListener gemeckert hat weil er seine Defaults haben will.
Code:
import java.awt.Canvas;
import java.awt.Color;
import java.awt.DisplayMode;
import java.awt.Graphics;
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import javax.swing.JFrame;

public class Game extends JFrame implements KeyListener 
{    
	final static long serialVersionUID = 1L;   
	public Game() {         
		GraphicsDevice gd = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setSize(1280, 1024);
		this.add(new Draw());
		try{            
			gd.setFullScreenWindow(this);
			gd.setDisplayMode(new DisplayMode(1280,1024,32,60));
			}catch(Exception e){
				System.out.println(e.toString()); 
			}        
			this.setVisible(true);        
			this.addKeyListener(this);    
			} 
		
	public static void main(String[] args) 
	{        
		new Game();    
	}    
	public class Draw extends Canvas{        
		final static long serialVersionUID = 2L;        
		public void paint(Graphics g){            
			g.setColor(Color.black);            
			g.drawString("TestTest", 125, 20);            
			g.setColor(Color.white);            
			g.drawString("Test Test",200,100);        
			}    
		}
	@Override
	public void keyPressed(KeyEvent arg0) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void keyReleased(KeyEvent arg0) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void keyTyped(KeyEvent arg0) {
		// TODO Auto-generated method stub
		
	} 
	}
 
Hi

Danke für Deine Antwort. Wie gesagt war das der gekürzte Code, die Funktionen habe ich also schon im richtigen Quelltext stehen. Allerdings wird mir auch bei deiner Version kein String auf dem Bildschirm ausgegeben.
 
Also bei mir geht das ohne Probleme o.O Ich habe mal deinen Code aus diesem Post genauso übernommen und eben aus dem ersten Post die Methoden des KeyListeners hinzugefügt und es läuft, ich sehe einen schwarzen Text und einen weißen Text. Hab auch mal nen Screen hinzugefügt ...
 

Anhänge

  • Bildschirmfoto.png
    Bildschirmfoto.png
    3 KB · Aufrufe: 41
Zurück