2016-05-01 8 views
0

Was ich eigentlich kodierte, ist davon verschieden, aber ich erstelle das Problem separat, um es einfacher zu machen. Ich bin neu in der Codierung und habe gerade ein Buch über die Grundlagen gelesen und ein paar Videos angeschaut. Bisher lief alles gut, um grundlegende Programme zu erstellen, um zu testen, was ich gelernt habe, bis ich mich schließlich dazu entschloss, ein Spiel zu erstellen! Ein bisschen wie Codierung zu lernen, anstatt zu lernen, zu programmieren. Ich benutzte ein Rahmenlayout und legte eine Leinwand in die Mitte; wo das Hauptspiel sein wird. Aber ich kann nichts daraus machen. Jeder denkt, dass sie mich erleuchten können? T^TIch kann nicht in der Lage sein, Grafiken auf meine Leinwand zu zeichnen. "kann nicht auf bestimmte Typen angewendet werden";

Es läuft mit:

import java.awt.*; 
import javax.swing.*; 

public class TestingGraphics 
{ 
    public static void main (String[] args) 
    { 
     GameScene window = new GameScene(); 
    } 
} 

Und dies ist der Inhalt des Fensters.

import java.awt.*; 
import javax.swing.*; 

public class GameScene extends JFrame 
{ 
    Canvas gameCanvas; 

    Graphics Pencil; 

    JPanel game; 

    public GameScene() 
    { 
    game = new JPanel(); 
    add(game); 

    setTitle("Yet to name this thing."); 
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  

    gameCanvas = new Canvas(); 
    gameCanvas.setPreferredSize(new Dimension(1280, 720)); 
    game.add(gameCanvas); 

    DrawMyFuckingStringPlease(); 

    pack(); 
    setLocationRelativeTo(null); 
    setVisible(true); 
    } 

    public void DrawMyFuckingStringPlease(Graphics Pencil) 
    { 
    Pencil.drawString("boo", 100, 100); 
    } 
} 
+0

nach vollständiger Fehler –

Antwort

3

Ihr Problem ist, dass Sie wilde Vermutungen auf, wie man zeichnet in Swing und das nie funktioniert und Ihre Fehler enthalten versuchen zu ziehen direkt in einem JFrame machst, versucht, eine Methode aufrufen, ohne notwendigen Parameter übergeben , drawing außerhalb von jeder Malmethode .... In erster Linie, gehen Sie zu den Swing-Zeichen Tutorials, die Sie hier finden können: Swing Drawing Tutorials - und lesen Sie sie.

nächstes tun, wie sie Ihnen sagen:

  • Erstellen Sie eine Klasse, die JPanel
  • Draw in der Methode paintcomponent Überschreibung dieser Klasse, die nicht direkt in einem JFrame
  • sicher sein, nennen erstreckt Super's paintComponent-Methode in Ihrer überschriebenen Methode.
  • Fügen Sie Ihre JPanel auf ein Fenster der obersten Ebene wie ein JFrame
  • Anzeige der GUI
  • Fertig.
+0

Danke! Das hat so viel geholfen. Sie haben recht, ich denke, ich habe viele Annahmen gemacht. Wenn es dir nichts ausmacht, dass ich gefragt habe, war ich nicht ganz in der Lage herauszufinden, wie ich dies in ein begrenztes Layout machen kann, da ich jetzt ein JPanel erstellt habe, das ich auch zeichnen kann. Ich kann darüber nachlesen; Ich glaube nicht, dass das Buch über Java dies behandelt hat, da es überhaupt nicht bekannt ist. Würde es Ihnen etwas ausmachen, wenn ich noch einmal nach einer Anleitung fragen würde? Ich könnte mit, wenn ich "neue JPanel" gemacht habe, aber es scheint nicht damit zu arbeiten. –

+0

@ Mr.SethX3: Sie könnten eine neue Frage dazu stellen, eine mit einem gültigen [mcve], das wir kompilieren, ausführen und ändern können - nicht einen Link und nicht Ihr ganzes Programm, sondern ein separates kleines Programm eine, die kompiliert und läuft und das dein Problem für uns demonstriert. –